Dis*_*two 4 kotlin
我从Kotlin开始并试图了解一些事情.
var foo: String = null 不按预期编译.
var foo: String = null
var foo: String? = null 应该是正确的语法并按预期编译.
var foo: String? = null
那为什么要var foo = null编译?
var foo = null
zsm*_*b13 9
该类型foo在这种情况下会被推断为Nothing?,这是一个非常特殊的类型.简而言之,Nothing是一个类型,它是Kotlin中每个类型的子类型(因此Nothing?是每个可空类型的子类型),没有实例,并且可以用作永不返回的函数的返回类型.
foo
Nothing?
Nothing
尽管Nothing可以没有实例,但null它本身就是类型Nothing?,这就是为什么它可以分配给任何可以为null的变量.
null
您可以了解更多深约Nothing在官方的文档,在这个优秀的文章中,在这篇文章中,涵盖整个科特林类型层次.
nha*_*man 5
因为var foo = null,推断出类型Nothing?,因此是有效的语法.
归档时间:
8 年,4 月 前
查看次数:
131 次
最近记录: