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学习之--?. ?: 以及断言符 和 == ===的区分的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin学习之变量和函数的讲解

Kotlin学习之双冒号

Kotlin学习之双冒号

Kotlin学习之反射

Kotlin学习之object表达式和声明

正则表达式学习之grep,sed和awk