gpt4 book ai didi

android - 为什么我不能直接访问 let 作用域函数中使用的对象,而不是在 Kotlin 中访问它?

转载 作者:行者123 更新时间:2023-12-02 05:56:14 25 4
gpt4 key购买 nike

我知道代码 C代码 A 相同。

我希望在代码B中使用变量aa而不是it,但它会导致错误。

为什么代码 B代码 A 不同?

代码A

private var aa:String?=null 

aa?.let{
print(it.length)
}

代码B

private var aa:String?=null 

aa?.let{
print(aa.length)
}

代码 C

private var aa:String?=null 

aa?.let{
aa-> print(aa.length)
}

最佳答案

it 只是 kotlin 隐式赋予参数的名称,您可以用自己的名称覆盖它(这发生在 C 中,参数名称设置为 aa ).

在 A 中,您将 it 用作隐式参数,它指的是在经过空检查后等同于 aa 的值。

B 不起作用,因为与 C 和 A 不同,aa 指的是您在 let 之外声明的 var,它是可为空。由于它可以为 null,因此您不能像在 A 和 C 中那样简单地对其调用 length

关于android - 为什么我不能直接访问 let 作用域函数中使用的对象,而不是在 Kotlin 中访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58814807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com