a.run是否和kotlin中的.run一样?

如果一个variables在Kotlin中是空的,我们需要做一个安全调用,或者。 用于显式调用。

当我试图从可变空间variables中使用一些扩展(比如run或let)时,我注意到.run是好的,IDE没有抱怨,通常我会收到一个警告,提醒我这不是一个安全调用。

是否对kotlin中的.run {}和.run {}有所影响? 如果我使用.run {},它被认为是无效的安全吗?

var a? = "..." a?.run{} a.run{} 

你需要安全地处理null的地方。

要么访问a

 a?.run { } 

或者当访问this里面run a

 a.run { this?.toSomething() } 

使用String? 作为一个例子,这两个都打印null和编译器都可以两个:

 val x: String? = null println(x.run { this?.toUpperCase() }) // prints null, type is String? println(x?.run { this.toUpperCase() }) // prints null, type is String?