Kotlin的“用法”用法

时间:2019-02-19 22:15:22

标签: android kotlin let

这段代码之间是否有区别:

fun isDogEating(): Boolean {
    return dog?.let { return it.eating } ?: false
}

还有这个

fun isDogEating(): Boolean {
    return dog?.eating ?: false
}

我碰到了第一个,想知道let在这里是否多余。

1 个答案:

答案 0 :(得分:4)

行为上没有差异。

由于false结尾,两个函数都返回dog == null,如果?: false

let函数仅在dog != null时执行。 与第二个示例中的eating属性相同

请注意,return lambda中的let语句意味着要从isDogEating函数而不是lambda返回!要从lambda返回,可以使用return@let或仅使用表达式

我希望使用简短的版本:

fun isDogEating() = dog?.eating ?: false