KOTLIN · 기초 문법
연산자 오버로딩 (Operator Overloading)
operator 키워드로 기존 연산자의 동작을 재정의합니다. plus, times, compareTo 등 다양한 연산자를 오버로딩할 수 있습니다.
기초 문법고급operator-overloadingplustimesget
핵심 설명
operator 키워드로 기존 연산자의 동작을 재정의합니다. plus, times, compareTo 등 다양한 연산자를 오버로딩할 수 있습니다.
Kotlin code
data class Vector(val x: Double, val y: Double) {
operator fun plus(other: Vector) =
Vector(x + other.x, y + other.y)
operator fun times(scalar: Double) =
Vector(x * scalar, y * scalar)
operator fun unaryMinus() = Vector(-x, -y)
operator fun get(index: Int) = when (index) {
0 -> x; 1 -> y
else -> throw IndexOutOfBoundsException()
}
}
fun main() {
val a = Vector(1.0, 2.0)
val b = Vector(3.0, 4.0)
println(a + b) // Vector(4.0, 6.0)
println(a * 2.5) // Vector(2.5, 5.0)
println(-a) // Vector(-1.0, -2.0)
println(a[0]) // 1.0
}학습 팁
연산자 오버로딩은 수학적 의미가 직관적인 도메인 객체(벡터, 행렬, 복소수 등)에 사용하면 가독성이 크게 향상됩니다.
주의할 점
연산자의 의미를 왜곡하지 마세요. plus가 덧셈이 아닌 동작을 하면 코드를 읽는 사람이 혼란스러워합니다.
자주 묻는 질문
연산자 오버로딩 (Operator Overloading)란 무엇인가요?
operator 키워드로 기존 연산자의 동작을 재정의합니다. plus , times , compareTo 등 다양한 연산자를 오버로딩할 수 있습니다.
연산자 오버로딩 (Operator Overloading) 학습 시 주의할 점은 무엇인가요?
연산자의 의미를 왜곡하지 마세요. plus 가 덧셈이 아닌 동작을 하면 코드를 읽는 사람이 혼란스러워합니다.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.