可空类型与非空类型
在 Kotlin 中,类型系统区分一个引用可以容纳 null (可空引用)还是不能容纳(非空引用)。
例如,String 类型的常规变量不能容纳 null。
var a: String = "abc"
a = null // 编译错误
抛出异常:Null can not be a value of a non-null type String
如果要允许为空,我们可以声明一个变量为可空字符串,写作String?
:
var b: String? = "abc"
b = null // ok
print(b)
```kotlin
#### 在条件中检查 null
##### 显式检查 b 是否为 null
```kotlin
val l = if (b != null) b.length else -1
val b = "Kotlin"
if (b != null && b.length > 0