연산자 오버로딩이란 객체끼리 '+' 나 '-' 같은 연산자를 사용할 수 있게 해주는 기능이다.
이는 자바에서는 지원하지 않는 기능이다. (일반적으로 add같은 함수 구현해서 사용)
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 p1 = Point(1, 2)
val p2 = Point(3, 4)
val p3 = p1 + p2 // `plus` 연산자 함수를 호출합니다.
println(p3) // 출력: Point(x=4, y=6)
}
연산자라고 한다면 +, -, *, / 만 떠오를텐데 <=나 .. 같은 복잡한 연산자도 존재한다.
그 양이 생각 보다 많으니 공식문서를 참고하길 바란다.
https://kotlinlang.org/docs/operator-overloading.html
'Kotlin' 카테고리의 다른 글
영역 함수(scope functions) (0) | 2024.02.29 |
---|---|
수신 객체 지정 람다 (0) | 2024.02.29 |
코틀린의 정적 타입 (0) | 2024.02.19 |
자바에서 코틀린 컬렉션으로 (1) | 2024.02.13 |
확장함수를 사용해 직관적으로 변경하기 (0) | 2024.02.07 |