<本文学习郭神《第三行代码》总结>
1、可空类型
Kotlin在编译时,会有自己的判空机制,可以几乎杜绝空指针异常
首先,写一段代码:
fun setDate(a: Test) {
a.getText()
a.getContent()
}
这段代码没有空指针风险,并且这段代码无法传入空参数。
因为Kotlin默认所有参数不可为空,所以这里传入的参数也是不可空的。如果这里传入一个null参数,则会提示错误:Null can not bea value of a non-null type Study,也就是说,Kotlin在将空指针异常的检查提前到了编译期。
如果开发过程中,业务逻辑需要使用null参数,则需要进行可空类型操作。
可空类型很简单,就是在类名后加一各问好,比如:
Int | 表示不可空整型 |
---|---|
Int? | 表示可空整型 |
String | 表示不可控字符串 |
String? | 表示可空字符串 |
那么,将上述代码修改为
fun setDate(a: Test?) {
a.getText()
a.getContent()
}
就可以传入null参数,就不会再提示错误。
但是,传入了空参数,会导致方法里面的调用方法getText()、getContent(