List和Array类型有什么区别?
它似乎可以与它们进行相同的操作(循环,过滤器表达式等),行为或用法有什么不同吗?
val names1 = listOf("Joe","Ben","Thomas")
val names2 = arrayOf("Joe","Ben","Thomas")
for (name in names1)
println(name)
for (name in names2)
println(name)
Run Code Online (Sandbox Code Playgroud) 我有下面的代码来从列表中选择第一个项目,其中该项目的姓氏字段值不应该是UNKNOWNor MISSING。
val userLastName = someList
.first { it.lastName != "UNKNOWN" && it.lastName != "MISSING" }
.lastName
Run Code Online (Sandbox Code Playgroud)
现在 Intellij 说字段 userLastName 永远不能为空。为什么?
如果列表中的所有对象的lastName字段值为 或UNKNOWN,MISSING那么该userLastName变量将为空,对吧?
我尝试更改代码以使用 null 安全运算符:
val userLastName = someList
.first { it.lastName != "UNKNOWN" && it.lastName != "MISSING" }
?.lastName
Run Code Online (Sandbox Code Playgroud)
但我收到以下警告:
Safe call on a non-null receiver will have nullable type in future releases
Run Code Online (Sandbox Code Playgroud) kotlin ×2