什么! 意味着一个Kotlin返回值?
我正在尝试使用具有Location!
types的Task
result
Location!
。 这是什么意思,我怎么处理可空性? 它可能是空的或不?
我在kotlinlang.org的Null安全部分找不到这种声明。
一个types与!
被称为平台types ,这是一种来自Java的types,因此最可能是null
。 这是Kotlin编译器在调用Java时默认推断的内容(对于最基本的情况,可以注释 Java方法来解决这个问题)。 您应该将平台types处理为可空types,除非您确实知道特定的API永远不会返回null
。 编译器允许将平台types分配给可为空和非空types的variables。
平台types的表示法
[…]
T!
意思是“T or T?
”[…]
您可以将平台types称为“ 未知可空性的types”。 另外重要的是要知道,你不能使用感叹号标记types为你自己的types,它不是Kotlin语法的一部分,它只是一个符号。