반응형
7.2 비교 연산자 오버로딩
7.2.1 동등성 연산자 ; equals
- == 연산자도 앞서 말한 방식 그대로 equals 함수로 컴파일 되는 것이다
- data class의 경우 컴파일러가 자동으로 equals 함수를 생성해준다
- 직접 override 하여 코드 작성 가능
- !=
- equals 실행한 결과를 반전시켜 반환
7.2.2 순서 연산자 : compareTo
- Comparable interface 안에 들어있는 compareTo
- java 에서는 원시 타입의 경우에만 <. > 연산자로 비교 가능하다
- kotlin은 <. > 연산자는 compareTo 연산자로 계산된다
- compareValuesBy
- 두 객체와 여러 비교 함수를 인자로 받아서 앞에것부터 하나씩 비교한다
- 차이나면 끝
7.3 컬렉션과 범위에 대해 쓸 수 있는 관례
7.3.1 인덱스로 원소에 접근 : get, set
- [] 연산자는 알아서 get, set으로 변환된다
- operator get, operator set으로 선언만 해주면 된다
- get 메소드의 파라미터는 Int 가 아니어도 된다
- map collection의 경우에는 key 타입과 같은 임의의 타입이 될 수 있다
7.3.2 in 관례
- contains 사용
7.3.3 rangeTo 관례
- .. 구문을 사용하면 rangeTo 함수가 호출된다
- rangeTo
- 범위를 반환한다
- 어떤 클래스의 Comparable interface가 구현되어 있다면
- 내장 rangeTo 함수가 있다
- .. 연산자 사용시에는 혼돈을 피하기 위해 괄호 잘 써주기
7.3.4 for 루프를 위한 iterator 관례
- iterator method 정의
- closedRange operator로 선언
- closedRange에 대한 확장함수 iterator을 정의했기 때문에, A의 범위객체를 for 안에서 사용할 수 있다
반응형
'Languages' 카테고리의 다른 글
kotlin의 고차함수 (lambda) (0) | 2020.05.26 |
---|---|
kotlin의 구조분해 선언과 component 함수 (0) | 2020.05.18 |
kotlin 산술 연산자 오버로딩 (+, - *) (0) | 2020.05.18 |
kotlin의 null 가능성과 collection (0) | 2020.05.07 |
kotlin의 원시타입 (int, boolean, any) (0) | 2020.05.07 |