在 Kotlin 中,可以有 null
值。为了帮助防止程序中出现 null 值的问题,Kotlin 具有 null 安全性。Null 安全性在编译时(而不是在运行时)检测 null 值的潜在问题。
空安全是允许您:
- 显式声明程序中何时允许 null 值。
- 检查 null 值。
- 对可能包含 null 值的属性或函数使用安全调用。
- 声明检测到 null 值时要执行的操作。
可为 null 的类型
Kotlin 支持可为 null 的类型,这允许声明的类型具有 null 值的可能性。默认情况下,不允许类型接受 null 值。可为 null 的类型是通过显式添加 ?在类型声明之后。
例如:
fun main() {
// neverNull 具有 String 类型
var neverNull: String = "这不能是空的"
// 引发编译器错误
// neverNull = null
// nullable 具有可为 null 的字符串类型
var nullable: String? = "您可以在此处保留 null"
// 这是可以的
nullable = null
// 默认情况下,不接受 null 值
var inferredNonNull = "编译器假定不可为 null"
// 引发编译器错误
// inferredNonNull = null
// notNull 不接受 null 值
fun strLength(notNull: String): Int {
return notNull.length
}
println(strLength(neverNull)