Created
June 30, 2023 17:44
-
-
Save senamit2708/68fb8f924476985740d8a617938e477c to your computer and use it in GitHub Desktop.
equality operator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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