gpt4 book ai didi

android - Kotlin 数据类和可为空的类型

转载 作者:IT老高 更新时间:2023-10-28 13:41:28 24 4
gpt4 key购买 nike

我是 Kotlin 的新手,我不知道为什么编译器会提示这段代码:

data class Test(var data : String = "data")

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

编译器提示 test?.data.length,它说我应该这样做:test?.data?.length。但是数据变量是String,而不是String?,所以我不明白为什么我要检查时必须放长度。

最佳答案

表达式test?.data.length等价于(test?.data).lengthtest?.data部分可以为空:它是 test.datanull。因此,获取它的 length 不是空安全的,而是应该使用 safe call operator再次:test?.data?.length.

可空性通过整个调用链传播:您必须将这些链编写为 a?.b?.c?.d?.e (这又等同于 (((a?.b)?.c)?.d)?.e),因为如果左侧部分之一为空,则无法执行其余调用,就好像该值为非空。

关于android - Kotlin 数据类和可为空的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42025271/

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