7장 연산자 오버로딩과 기타 관례
- 코틀린에서는 정해진 이름의 함수를 오버로딩함으로써 표준 수학 연산자를 오버로딩할 수 있다. 하지만 직접 새로운 연산자를 만들 수는 없다.
- 비교 연산자는 equals 와 compareTo 메소드로 변환된다.
- 클래스에 get, set, contains 라는 함수를 정의하면 그 클래스의 인스턴스에 대해 [] 와 in 연산을 사용할 수 있다고, 그 객체를 코틀린 컬렉션 객체와 비슷하게 다룰 수 있다.
- 미리 정해진 관례를 따라 rangeTo, iterator 함수를 정의하면 범위를 만들거나 컬렉션과 배열의 원소를 이터레이션할 수 있다.
- 구조 분해 선을을 통해 한 객체의 상태를 분해해서 여러 변수에 대입할 수 있다. 함수가 여러 값을 한꺼번에 반환해야 하는 경우 구조 분해가 유용하다. 데이터 클래스에 대한 구조 분해는 거저 사용할 수 있지만, 커스텀 클래스의 인스턴스에서 구조 분해를 사용하려면 componentN 함수를 정의해야 한다.
- 위임 프로퍼티를 통해 프로퍼티 값을 저장하거나 초기화하거나 읽거나 변경할때 사용하는 로직을 재활용할 수 있다. 위임 프로퍼티는 프레임워크를 만들 때 아주 주용하다.
반응형
'Dev > Kotlin' 카테고리의 다른 글
Kotlin - unzip (0) | 2020.07.30 |
---|---|
코틀린 - 고차 함수: 파라미터와 반환 값으로 람다 사용 (요약) (0) | 2018.10.17 |
코틀린 - 코틀린 타입 시스템 (요약) (0) | 2018.09.30 |
코틀린 - 코틀린 타입 시스템 (정리) (0) | 2018.09.30 |
코틀린 - 람다로 프로그래밍(요약) (0) | 2018.09.27 |