PHpullh
학습 라이브러리/Kotlin/비교 연산 (Equality & Comparison)

KOTLIN · 기초 문법

비교 연산 (Equality & Comparison)

Kotlin은 구조적 동등성(==)과 참조 동등성(===)을 구분합니다. ==는 내부적으로 equals()를 호출합니다.

기초 문법입문equalitycomparablereference-equality

핵심 설명

Kotlin은 구조적 동등성(==)과 참조 동등성(===)을 구분합니다. ==는 내부적으로 equals()를 호출합니다.

Kotlin code

fun main() {
    val a = "Hello"
    val b = "Hello"
    val c = String("Hello".toCharArray())

    println(a == b)   // true (구조적 동등)
    println(a === b)  // true (문자열 풀)
    println(a == c)   // true (구조적 동등)
    println(a === c)  // false (다른 객체)

    // Comparable 구현
    data class Version(val major: Int, val minor: Int) : Comparable<Version> {
        override fun compareTo(other: Version) =
            compareValuesBy(this, other, { it.major }, { it.minor })
    }
    println(Version(2, 0) > Version(1, 9)) // true
}

학습 팁

compareValuesBy()를 사용하면 여러 속성을 순차적으로 비교하는 Comparable을 간결하게 구현할 수 있습니다.

주의할 점

Java와 달리 Kotlin의 ==equals()를 호출합니다. 참조 비교가 필요하면 ===를 사용하세요.

자주 묻는 질문

비교 연산 (Equality & Comparison)란 무엇인가요?

Kotlin은 구조적 동등성( == )과 참조 동등성( === )을 구분합니다. == 는 내부적으로 equals() 를 호출합니다.

비교 연산 (Equality & Comparison) 학습 시 주의할 점은 무엇인가요?

Java와 달리 Kotlin의 == 는 equals() 를 호출합니다. 참조 비교가 필요하면 === 를 사용하세요.