Kotlin

[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 자료형 검사와 변환

Leave a Reply

error: Content is protected !!