7장 연산자 오버로딩과 기타 관례
KOTLIN IN ACTION 7장을 요약한 내용입니다.
산술 연산자 오버로딩
이항 산술 연산 오버로딩
// case 1. 연산자를 자체 함수로 정의하기
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(args: Array<String>) {
val p1 = Point(10, 20)
val p2 = Point(30, 40)
println(p1 + p2)
}
// case 2. 연산자를 확장 함수로 정의하기
data class Point(val x: Int, val y: Int)
operator fun Point.plus(other: Point): Point {
return Point(x + other.x, y + other.y)
}오버로딩 가능한 이항 산술 연산자
복합 대입 연산자 오버로딩
단항 연산자 오버로딩
오버로딩할 수 있는 단항 산술 연산자
비교 연산자 오버로딩
동등성 연산자: equals
순서 연산자: compareTo
컬렉션과 범위에 대해 쓸 수 있는 관례
in 관례
rangeTo 관례

for 루프를 위한 iterator 관례
구조 분해 선언과 component 함수
구조 분해 선언과 루프
프로퍼티 접근자 로직 재활용: 위임 프로퍼티
위임 프로퍼티 사용: by lazy()를 사용한 프로퍼티 초기화 지연
요약
Last updated