Kotlin 中的运算符“==="有什么作用?


在 Kotlin 中,“===" 运算符检查两个对象的引用相等性。任何表达式“a===b”都只会当且仅当“a”和“b”指向同一对象时评估为 True。也就是说,“a”和“b”共享同一地址。

相反,我们可以使用“==”运算符来检查结构相等性,这意味着两个对象具有相同内容。基本上,“==”是对equals()的检查。

示例:Kotlin 中的 “===” 运算符

fun main(args: Array<String>) {
   var str1 : String = "That's it"
   var str2 : String = "It's OK"
   var str3 : String = str1

   println("str1 : " + str1)
   println("str2 : " + str2)

   // Referential Equality
   println(str1===str2)
   println(str1===str3)
}

输出

它将产生以下输出 −

str1 : That's it
str2 : It's OK
false
true

请注意,“str1”和“str3”都具有相同的引用,因此“str3 === str1”返回True

示例:Kotlin 中的“==”运算符(结构相等性)

现在我们来看同一示例,并稍作修改以展示 Kotlin 中引用相等性和结构相等性的区别。

fun main(args: Array<String>) {
   val student1 = "Ram"
   val student2 = "shyam"
   val student3 = student1
   val student4 = "shyam"

   // Referential equality
   println("Referential Equality:")
   println(student1 === student3)

   // Structural equality
   println("Structural Equality:")
   println(student2 == student4)
}

输出

它将产生以下输出 −

Referential Equality
true
Structural Equality
true

这里我们使用了“==”运算符来检查 student2 和 student4 之间的结构相等性。由于这两个变量具有相同的内容,“student2 == student4”返回True

更新时间: 16-Mar-2022

319 浏览

开启你的 职业生涯

完成课程,获得认证

开始
广告
© . All rights reserved.