如何在Kotlin中以惯用方式转换可空类型?

时间:2016-12-15 07:08:31

标签: kotlin

我是Kotlin的新手,我正在寻找建议,以更优雅的方式重写以下代码。

val ts: Long? = 1481710060773

val date: Date?
if (ts != null) {
    date = Date(ts)
}

我尝试了let,但我认为它并不比原来的好。

val ts: Long? = 1481710060773

val date: Date?
ts?.let {
    date = Date(ts)
}

感谢。

2 个答案:

答案 0 :(得分:5)

您可以使用let调用的结果:

val date = ts?.let(::Date)

您可以使用Kotlin documentation

中的::语法找到有关函数引用的更多信息

答案 1 :(得分:-1)

val ts = 1481710060773L
val date = Date(ts)

如果要为其指定一个常量值,则不需要将ts指定为可为空的长类型Long?。然后将类型Long推断为ts,并且不再需要进行空检查。