[kotlin] 연산자 오버로딩
코틀린은 연산자 오버로딩을 지원하여 사용자 정의 데이터 타입에 대해 기본 연산자를 재정의할 수 있습니다. 연산자 오버로딩을 통해 사용자가 만든 클래스나 데이터 타입에 대해 +, -, *, /와 같은 연산자를 적용할 수 있습니다.
연산자 오버로딩의 기본 구조
코틀린에서 연산자를 오버로딩하기 위해서는 operator
키워드를 사용합니다. 아래는 간단한 Complex 클래스에 대해 +
연산자를 오버로딩한 예제입니다.
class Complex(val real: Int, val imaginary: Int) {
operator fun plus(other: Complex): Complex {
return Complex(real + other.real, imaginary + other.imaginary)
}
}
위의 예제에서 operator
키워드를 사용하여 plus
함수를 정의함으로써 +
연산자를 오버로딩했습니다.
다양한 연산자 오버로딩 예제
코틀린에서는 다양한 연산자에 대해 오버로딩을 지원합니다. 예를 들어, minus
, times
, div
, rem
, inc
, dec
등의 연산자에 대해 오버로딩이 가능합니다.
class Point(var x: Int, var y: Int) {
operator fun plus(other: Point): Point {
return Point(x + other.x, y + other.y)
}
operator fun minus(other: Point): Point {
return Point(x - other.x, y - other.y)
}
operator fun times(scale: Int): Point {
return Point(x * scale, y * scale)
}
}
요약
코틀린에서의 연산자 오버로딩을 통해 사용자 정의 데이터 타입에 대해 다양한 연산자를 재정의할 수 있습니다. 이를 통해 코드의 가독성을 높이고, 다양한 연산을 보다 간단하게 표현할 수 있습니다.
더 많은 자세한 정보는 코틀린 문서를 참고하세요.