Kotlin学习之--?. ?: 以及断言符 和 == ===的区分
Posted Allen_ZXJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin学习之--?. ?: 以及断言符 和 == ===的区分相关的知识,希望对你有一定的参考价值。
一.
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
以上是关于Kotlin学习之--?. ?: 以及断言符 和 == ===的区分的主要内容,如果未能解决你的问题,请参考以下文章