[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
[참고 문헌]
Do it! 코틀린 프로그래밍 [황영덕 저 | 이지스퍼블리싱]
Do it! 코틀린 프로그래밍: 02-3 자료형 검사와 변환