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 로 사전 조건을 반드시 검증하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.