Kotlin编码窍门之相等(Equality)

2017-06-03  本文已影响0人  已迁至知乎_此不再维护

Kotlin中有两种类型的相等:

  1. 引用相等(两个引用指向同一个对象)
  2. 结构相等(equals()检查)

引用相等(Referential equality)

引用相等通过===操作符(相反操作符是!==)来检查。当a===b返回true的时候,意味着ab指向同一个对象。

结构相等(Structural equality)

结构相等通过==操作符(相反操作符是!=)来检查。按照惯例,a == b的表达式将会被翻译为:

a?.equals(b) ?: (b === null)

也就是说,如果a不是null,将调用equals(Any?)函数,否则,将检查b是否是null

注意:当显示与null比较的时候,没有必要优化你的代码:a == null将会被自动转换为a === null

上一篇 下一篇

猜你喜欢

热点阅读