[android : kotlin] 코틀린 이중 등호(==)와 삼중 등호(===) 사용 방법
이중 등호(==)와 삼중 등호(===) 사용 방법
- 이중등호(==)는 변수의 값만 비교하는 경우에 사용된다.
- 삼중등호(===)는 변수의 값과 참조 주소를 비교하는 경우에 사용된다.
[테스트 코드]
fun main() {
val a: Int = 128
val b: Int = 128
val c: Int = 128
val d: Int? = 128
val f = a
val g: Int? = a
val h: Int? = g
println(a == b)
println(a === b)
println(c == d)
println(c === d) // 값은 같지만 참조 주소는 다름 (false)
println(g === h)
}
[출력결과]
true true true false true
아래 코드를 보자!! 교재의 내용과 다르게 알 수 없는 문제가 발생했다. 128 미만에서는 참조 주소가 모두 true라는 결과값이 나타났다. 128 이상에서는 참조주소가 다르다고 false로 결과값을 리턴했다. 0부터 127까지는 참조 주소가 같다는 것인가????
true값이 나타난 Int값 범위는 음수(-127~ 양수 127) 까지 였다.
fun main() {
val a: Int = 127
val b: Int? = 127
println(a == b)
println(a === b)
val c: Int = 1
val d: Int? = 1
println(c == d)
println(c === d)
val e: Int = 129
val f: Int? = 129
println(e == f)
println(e === f)
}
[출력결과]
true true true true true false
[참고 문헌]

