hyeals study
[코틀린] 연산자 오버로딩 & 관례 - (2) 비교연산자 오버로딩 본문
[동등성 연산자]
* 코틀린에서는 == 연산자 호출을 equals 메소드 호출로 컴파일함
( != 연산자도 equals 호출로 컴파일됨)
* ==과 !=은 내부에서 인자가 널인지 검사하고 널이 아닌 경우에만 a.equals(b) 연산자를 호출함
☞ 따라서 "a==b"는 "a?.equals(b) ?: ( b == null)" 로 컴파일됨
* equals 메소드는 Any에 정의된 메소드이기 때문에 override가 필요함. 따라서 equals앞에 operator가 붙지 않아도 됨
[순서 연산자]
* 비교 연산자(>, <, >=, <=)는 compareTo 호출로 컴파일됨
☞ "a > b" 는 "a.compareTo(b) >= 0" 과 같음
* compareTo 메소드도 eqauls 메소드와 마찬가지로 Comparable의 compareTo에 operator가 붙어 있으므로 오버라이딩 했을 때 operator를 붙이지 않아도 됨
본 게시물은 "Kotlin IN ACTION"을 참고함.
'코틀린' 카테고리의 다른 글
[코틀린] 제네릭 타입 파라미터 (0) | 2020.02.28 |
---|---|
[코틀린] 고차 함수 (0) | 2020.02.27 |
[코틀린] 연산자 오버로딩 & 관례 - (1) 산술연산자 오버로딩 (0) | 2020.02.25 |
[코틀린] 타입 시스템 (2) - 원시 타입 (0) | 2020.02.25 |
[코틀린] 타입 시스템 (1) - 널 가능성 (0) | 2020.02.23 |
Comments