Languages

kotlin 의 비교 연산자 오버로딩 (equals, compareTo)

!쪼렙조햄 2020. 5. 18. 16:16
반응형

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 관례

반응형