一.
xx ?. ----> 非null 则执行 ?. 后面的逻辑
xx ?: -----> null则执行 ?: 后面的逻辑
xx !!. ------> 断言符,不管是否为null 都一定执行 !!. 后面的逻辑
println(name?.let {
"$it" } ?:"我是null")
//name为null则返回"我是null",否则返回它自己
println(name!!.let {
"$it" })
//不管name是不是null都执行函数,不过当为null的时候则报空指针错误
二.
== 相当于Java的 equals,只要内容相等就返回true
=== 相当于Java的 ==, 当引用的对象为同一个时才返回 true,即地址也要相同
var name1 : String ?= "ALLEN"
var name2 = "ALLEN"
var name3 = "allen".toUpperCase()
println(name1 == name2) //true
println(name1 == name3) //true
println(name1 === name3) //false