//使用let的安全调用,非空断言,空合并操作符 ?:以及let函数与空合并操作符使用
fun main(args:Array<String>){
var name:String? = null
name = "yuknight"
name = ""
//name是可空类型 如果真的是null,?后面这一段代码不会执行,就不会引发空指针异常
val r = name?.let {
//it == name 本身
//如果能够执行到这里面,it一定不为空
if (it.isBlank()){//如果name是空值""没有内容
"Default"
}else{
"[$it]"
}
}
println(r)
//非空断言 !!
name = "yuknight"
val n = name !!.capitalize()
println(n)
//空合并操作符 ?:
// var info:String? = "yuknight"
var info:String? = null
//空合并操作符 xxx ?: "原来你是null啊" "如果xxx等于null,就会执行?:后面的区域"
println(info?:"原来你是null")
//let函数与空合并操作符使用
println(info?.let { "【$it】" }?:"原来你是null啊")
}