Skip to content

Instantly share code, notes, and snippets.

@senamit2708
Created June 30, 2023 17:44
Show Gist options
  • Select an option

  • Save senamit2708/68fb8f924476985740d8a617938e477c to your computer and use it in GitHub Desktop.

Select an option

Save senamit2708/68fb8f924476985740d8a617938e477c to your computer and use it in GitHub Desktop.
equality operator
package basics
/*
1. structure equality -> == or equals -> both are same here -> value comp -> equality of 2 object in terms of value
2. reference equality -> === -> memory location comparison -> two reference variable points to same object
negative of == -> !=
negative of === -> !==
*/
fun main() {
objectCompareFun()
stringCompareFun()
}
fun objectCompareFun() {
class User {
var foo = 1 //some property
}
var u1 = User() //user1 obj
var u2 = User() //user2 obj
println(u1 == u2) //false : user1.equals(user2)
println(u1 === u2) //false : user1 and user2 reference to different object
var u3 = User() //user3
var u4 = u3 //user3
println(u3 == u4) //true : user3.equals(user3)
println(u3 === u4) //true : u3 and u4 reference to same object
}
fun stringCompareFun() {
val str1 = "Hello"
val str2 = "Hello"
val str3 = "Hello World"
println(str1 == str2) //true : "Hello".equals("Hello")
println(str1 == str3) //false : "Hello".equals("Hello World")
println(str1 === str2) //true : str1 and str2 references same object
println(str1 === str3) //false : str1 and str3 references to different object
val num1 = 10
val num2 = 10
val num3 = 20
println(num1 == num2)//true: 10.equals(10)
println(num1 === num2)//true: num1 and num2 references same object
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment