Kotlin 中的 .equals() 和 == 是一样的吗?

问题描述 投票:0回答:1

如果我尝试通过

override operator fun equals
覆盖 equals 函数和 == 运算符,我会收到“冲突重载”错误。

这是否意味着 == 和 .equals() 是同一件事?如果不是,为什么我不能覆盖两者?

kotlin operator-overloading
1个回答
0
投票

它们不是完全相同的东西,但是,是的,

==
是根据
equals
实现的:

https://kotlinlang.org/docs/equality.html#structural-equality

结构相等验证两个对象是否具有相同的内容或 结构。结构相等性通过

==
操作及其 否定对应物
!=
。按照惯例,像
a == b
这样的表达式是 翻译为:

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

另请参阅 https://kotlinlang.org/docs/operator-overloading.html#equality-and-inequality-operators

© www.soinside.com 2019 - 2024. All rights reserved.