跳转至

科特林的平等评价

原文:https://www . geesforgeks . org/equality-evaluation-in-kot Lin/

Kotlin 提供了一个额外的功能,可以通过两种不同的方式比较特定类型的实例。这个特性使得 Kotlin 不同于其他编程语言。 两种类型的平等是–

  • 结构平等
  • 参照平等

结构平等–

通过 ==运算符及其逆运算检查结构相等性!=操作员。默认情况下,包含 x==y 的表达式被转换为该类型的 equals() 函数的调用。

x?.equals(y) ?: (y === null)

声明如果 x 不等于空,它调用函数等于(y) ,否则如果 x 被发现为空,它将检查 y 是否参考等于空。 注意–当(x == null)时,它将自动转换为引用等式(x === null),因此这里不需要代码优化。 因此,要在类型的实例上使用==该类型必须重写 equals()函数。对于字符串,结构相等比较内容

参考等式–

柯特林中的参照等式是通过 ===运算符及其逆运算符来检查的!==操作员。只有当一个类型的两个实例都指向内存中的相同位置时,该等式才返回 true。当在运行时转换为基元类型的类型上使用时,===检查被转换为==检查和!==支票被转换成!=检查。 科特林程序,演示结构和参照的平等–

Java 语言(一种计算机语言,尤用于创建网站)

class Square(val side: Int) {
    override fun equals(other: Any?): Boolean {
        if(other is Square){
            return other.side == side
        }
        return false
    }
}
// main function
fun main(args :Array<String>) {
    val square1 = Square(5)
    val square2 = Square(5)
    // structural equality
    if(square1 == square2) {
        println("Two squares are structurally equal")
    }
    // referential equality
    if(square1 !== square2) {
        println("Two squares are not referentially equal")
    }
}

输出:

Two squares are structurally equal
Two squares are not referentially equal


回到顶部