[kotlin] 연산자 프리시저
코틀린에서는 연산자를 클래스의 멤버 함수로 오버로딩하여 사용할 수 있습니다. 이는 연산자 프리시디가 가능하다는 의미입니다. 이 기능을 활용하면 사용자가 정의한 클래스에 대해 연산자를 지원할 수 있습니다.
연산자 오버로딩
코틀린에서는 operator
키워드를 사용하여 다양한 연산자를 오버로딩할 수 있습니다. 주요 연산자에 대해 제공되는 프리시디는 다음과 같습니다.
- 산술 연산자: +, -, *, /, %
- 비트 연산자: and, or, shl, shr, inv
- 비교 연산자: ==, !=, <, >, <=, >=
- 대입 연산자: +=, -=, *=, /=, %=
연산자 함수
연산자를 오버로딩하기 위해 특정한 이름의 함수를 정의해야 합니다. 함수 이름은 연산자를 나타내는 키워드로 정의됩니다. 여기에는 몇 가지 예가 있습니다.
이항 연산자
operator fun plus(other: MyClass): MyClass {
// 덧셈 연산 수행
}
단항 연산자
operator fun unaryMinus(): MyClass {
// 음수 연산 수행
}
대입 연산자
operator fun plusAssign(other: MyClass) {
// 덧셈 후 대입 연산 수행
}
사용 예시
data class Point(val x: Int, val y: Int) {
operator fun plus(other: Point): Point {
return Point(x + other.x, y + other.y)
}
}
fun main() {
val point1 = Point(3, 4)
val point2 = Point(1, 2)
val result = point1 + point2
println(result) // 출력: Point(x=4, y=6)
}
결론
코틀린의 연산자 프리시지 기능을 활용하면 사용자 정의 클래스에 대해 연산자를 지원하는 기능을 쉽게 구현할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
더 자세한 내용은 코틀린 공식 문서를 참조하세요.