android – Kotlin数据类和可空类型

前端之家收集整理的这篇文章主要介绍了android – Kotlin数据类和可空类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Kotlin的新手,我不知道为什么编译器会抱怨这段代码
data class Test(var data : String = "data")

fun test(){
  var test: Test? = Test("")
  var size = test?.data.length
}

编译器抱怨测试?.data.length,它说我应该这样做:test?.data?.length.但是数据变量是String,而不是String?,所以我不明白为什么我要把它?当我想检查长度.

解决方法

表达式test?.data.length等价于(test?.data).length,测试?.data部分可以为空:它是test.data或null.因此,获取其长度并不是零安全的,而是应该再次使用 safe call operator:test?.data?.length.

可空性通过整个调用链传播:你必须将这些链写成?.b?.c?.d?.e(再次等同于(((a?.b)?. c) ?.)).e),因为,如果其中一个左边部分为空,则不能执行其余的调用,就像该值不为null一样.

猜你在找的Android相关文章