在 Kotlin 中,有两种相等, Referential equality 两个引用指向同一个对象 Structural equality 通过 equals() 方法判断两个对象是否相等。
三个等号 === 用来表示引用相等的判断,相反的符号为 !== 。 a === b 只有在 a 和 b 都指向同一个对象的时候才返回 true。
=== 比较的其实是内存地址,如果两个对象的内存地址是一样,那么 === 返回的就是 true。
两个等号 == 用来表示结构相等的判断,相反的符号为 !=。 一般来说,a == b 表达式等同于以下代码
a?.equals(b) ?: (b === null)
上面代码的意思是,如果 a 不是 null 的话,就调用其 equals(Any?) 方法,如果 a 是 null 的话,那么就判断 b 是不是 null 了。
== 比较的是对象的 equals() 方法。
一般情况下,a == null 会自动变成 a === null。
- EOF -
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: Kotlin 学习之相等 Equality
本文地址: https://binkery.com/archives/576.html