【问题标题】:Kotlin 'let' usageKotlin 'let' 用法
【发布时间】:2019-02-19 22:15:22
【问题描述】:

这段代码有区别吗:

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

还有这个

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

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

【问题讨论】:

    标签: android kotlin let


    【解决方案1】:

    行为没有差异。

    如果dog == null,两个函数都返回false,因为末尾有?: false

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

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

    我更喜欢较短的版本:

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

    【讨论】:

    • 尤金,一如既往的好答案!
    • 我只想补充一点,在这种情况下,从isDogEating 返回最终不会影响结果,但主要是意外。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2021-02-27
    • 2023-03-15
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多