PHpullh
학습 라이브러리/Kotlin/연산자 함수 (Operator Functions)

KOTLIN · 함수

연산자 함수 (Operator Functions)

operator 키워드로 커스텀 타입에 연산자를 정의합니다. 확장 함수로도 기존 클래스에 연산자를 추가할 수 있습니다.

함수중급operatorpluscompareToextension

핵심 설명

operator 키워드로 커스텀 타입에 연산자를 정의합니다. 확장 함수로도 기존 클래스에 연산자를 추가할 수 있습니다.

Kotlin code

data class Money(val amount: Int, val currency: String) {
    operator fun plus(other: Money): Money {
        require(currency == other.currency) { "통화 불일치" }
        return Money(amount + other.amount, currency)
    }
    operator fun compareTo(other: Money): Int {
        require(currency == other.currency) { "통화 불일치" }
        return amount.compareTo(other.amount)
    }
}

// 확장 연산자 함수
operator fun Money.times(factor: Int) =
    Money(amount * factor, currency)

fun main() {
    val a = Money(1000, "KRW")
    val b = Money(2000, "KRW")

    println(a + b)        // Money(3000, KRW)
    println(a * 3)        // Money(3000, KRW)
    println(a > b)        // false (compareTo 사용)
}

학습 팁

compareTo를 오버로딩하면 >, , >=, 가 모두 자동으로 동작합니다.

주의할 점

서로 다른 통화 간 연산은 비즈니스 로직 오류입니다. require로 사전 조건을 반드시 검증하세요.

자주 묻는 질문

연산자 함수 (Operator Functions)란 무엇인가요?

operator 키워드로 커스텀 타입에 연산자를 정의합니다. 확장 함수로도 기존 클래스에 연산자를 추가할 수 있습니다.

연산자 함수 (Operator Functions) 학습 시 주의할 점은 무엇인가요?

서로 다른 통화 간 연산은 비즈니스 로직 오류입니다. require 로 사전 조건을 반드시 검증하세요.