當使用.let { }
功能,我注意到這樣做的時候,下面的:科特林。讓{}空安全想必虛假錯誤
bucket?.assignedVariantName.let {
bucket?.determineVariant() <-- guarantee safety for bucket
}
你必須保證安全水桶在這種情況下,即bucket?.
或bucket!!
而空安全
bucket?.assignedVariantName?.let { <-- added safety check for property
bucket.determineVariant() <-- doesn't need to guarantee safety for bucket
}
同時使用,讓在桶的財產,而不是直接在鬥我不知道這是否是intenti:已經用?.let
保證然後我做了以下的時候發現onitu或Kotlin插件中的錯誤(在這種情況下,我在Android Studio中遇到過這種情況)
其他信息是,存儲桶在這種情況下爲local val
,而assignedVariantName是可爲空的var。
val bucket: T? = ...
非常明確的解釋。謝謝! –