
[코틀린 문법] 변수의 동일성
// Equality(변수의 동일성) //
// 내용의 동일성 //
// a == b
// 메모리상의 서로 다른 곳에 할당된 객체지만 내용이 같으면 동일하다고 판단함
// 코틀린의 모든 클래스가 내부적으로 상속받는 Any라는 최상위 클래스의
// equals() 함수가 반환하는 Boolean 값으로 판단
// 객체의 동일성 //
// a === b
// 서로 다른 변수가 메모리상의 같은 객체를 가리키면 동일하다고 판단함
fun main () {
    var a = Product("콜라", 1000)
    var b = Product("콜라", 1000)
    var c = a
    var d = Product("사이다", 1000)
    // 내용만 동일
    println(a == b)
    println(a === b)
//    true
//    false
    // 내용 및 객체 동일
    println(a == c)
    println(a === c)
//    true
//    true
    
    println(a == d)
    println(a === d)
//    false
//    false
    
}
class Product(val name: String, val price: Int) {
    override fun equals(other: Any?): Boolean {
        if(other is Product) {
            return other.name == name && other.price ==price
        } else {
            return false
        }
    }
}
참고
반응형
    
    
    
  '개발(Android) > kotlin syntax' 카테고리의 다른 글
| [Kotlin syntax] Nested Class, Inner Class (0) | 2022.04.08 | 
|---|---|
| [Kotlin syntax] Arguments, Infix Functions (0) | 2022.04.08 | 
| [Kotlin syntax] Null Safety (0) | 2022.04.07 | 
| [Kotlin syntax] String Formatting (0) | 2022.04.07 | 
| [Kotlin syntax] Collections (1) Lists (0) | 2022.04.07 |