一、Kotlin语言的可空性特点
fun main() {
//第一种情况,默认是不可空类型,不能随意给null
var name : String = "Derry"
//提示:不能使非空类型String的值
//name = null
println(name)
//第二种情况,声明时指定为可空类型,加一个问号
var name2: String ?
name2 = null
println(name2)
}
二、Kotlin语言的安全调用操作符
fun main() {
var name: String? = "zhangsan"
name = null
// name.capitalize() //capitalize方法用于将字符第一个字符变成大写字符
//上一行代码报错:原因是name是可空类型,可能是null,想要使用name,必须给出补救措施
var r = name?capitalize() //name 是可空类型的,如果真的是null,?后面这一段代码不执行,就不会引起空指针异常
println(r) //null
}
三、在Kotlin中使用带let的安全调用
fun main() {
var name: String? = null
//name = "Derry"
//let是内部提供的一个函数,可以把name拿进函数中用,函数里有一个it,这个it==name
var r = name?.let {
//it == name 本身
//如果能够执行到这个函数里面,it一定不为null
if (it.isBlank()) { //如果name是空值 "" 没有内容
"Default" //返回的
} else {
it //返回的
}
}
println(r)
}
四、Kotlin语言中的非空断言操作符特点
fun main() {
var name: String? = null
name &