반응형
Kotlin에서 == 연산자는 값이 같은지 비교하고, === 연산자는 참조값이 같은지 비교하는데 사용합니다.
a == b 처럼 쓰면 아래처럼 컴파일 됩니다.
if (a == null) b == null else a.equals(b)
아래 초 간단 예제를 봅니다.
set, list 모두 동일한 결과이고 == 는 순서에 상관없이 set에 값이 같으면 true, === 는 객체 자체가 같은지 비교하니까 false로 나옵니다.
list는 == 은 값의 순서가 같아야지 true, === 는 다른 객체니까 false로 나옵니다.
fun main() {
val book1 = setOf("book1","book2")
val book2 = setOf("book1","book2")
println(book1 == book2) // true
println(book1 === book2) //false
val book3 = listOf("book1","book2")
val book4 = listOf("book1","book2")
println(book3 == book4) //true
println(book3 === book4) //false
println(book3 != book4) // false
val book5 = listOf("book2", "book1")
println(book3 == book5) // false
}
반응형