可选类型的学习笔记
前言
在 Kotlin 中,创建变量时可能会有空值。为了帮助防止程序中出现空值问题,Kotlin 提供了可选类型。可选类型在编译时能够避免空值的潜在问题。
一、可空类型是什么?
Kotlin 支持可空类型,这使得声明的类型可以具有空值。默认情况下,类型不允许接受空值。一般情况下,可空类型是通过显式添加 ? 来声明的。
如下图:
//neverNull属于String类型 var neverNull: String = "This can't be null" //抛出空指针异常 neverNull = null // nullable属于可选类型 var nullable: String? = "You can keep a null here" //没问题 nullable = null
二、什么时候使用可选类型
1.可选类型使用条件
当你想要安全地访问可能包含 null 值的对象的属性,请使用安全调用运算符 ?.。如果该对象或其访问的属性之一为 null,则安全调用运算符将返回 null。 如果想避免空值的存在而触发代码中的错误,这非常有用。
var name:String ?=null
println(name?.length)
//表示name如果不为null,则打印name的长度否则打印出null
println(name!!.length)
//表示name安全声明,name一定有值,如果没有就会报错
2.使用 Elvis 运算符检测空值
如果不想要数据为null时返回null,可以使用 Elvis 运算符 ?: 检测到空值时返回一个自定义的值
fun main() {
val nullString: String? = null
println(nullString?.length ?: 520)
// 结果为520
}
总结
可选类型能为变量赋初值null,相对于java而言使得代码更加安全可靠