반응형
- Dart 언어에서 모든 객체는 object클래스를 상속받습니다. 그리고 object클래스에는 아래와 같이 메서드가 정의되어 있습니다.
반응형
- operator == 연산자와 hashCode
- object클래스에 정의된 operator == 연산자는 기본적으로 두 객체의 메모리 주소를 비교하여 동등성을 판단하며, 동일 객체를 참조하고 있는 경우에만 true를 반환합니다.
- 위의 코드는 operator == 연산자를 재정의하여 Book 객체의 title과 publishDate이 같을 경우 true를 반환하도록 만들었습니다. 또한 object클래스에 정의되어 있는 hashCode getter도 함께 재정의하여 동일한 객체에 대해 동일한 hashCode를 반환하도록 했습니다.(Dart 언어에서 객체 간 비교는 hashCode를 사용합니다.)
- compareTo() 함수
- compareTo() 함수는 Comparable 인터페이스를 구현한 클래스에서 사용할 수 있는 함수로서, 두 개의 객체를 비교하고 정렬 순서를 결정할 수 있습니다.
- 위와 같이 compareTo() 함수를 재정의 하였을 경우, 리스트에 Book 객체를 추가한 후 sort()함수를 호출하면 Book클래스에 재정의한 compareTo 함수를 기반으로 객체들이 정렬됩니다.
- 코드를 실행해 보면 아래와 같이 publishDate를 기준으로 정렬되어 출력됩니다.
- compareTo() 함수는 Comparable 인터페이스를 구현한 클래스에서 사용할 수 있는 함수로서, 두 개의 객체를 비교하고 정렬 순서를 결정할 수 있습니다.
728x90
반응형
'Dart, Flutter for App' 카테고리의 다른 글
Flutter Package : Animated_Tree_View 활용 (1) | 2024.01.31 |
---|---|
Flutter Error | Error (Xcode): expected a ‘=’, but found ? (0) | 2024.01.06 |
Dart - Null Safety | null 안전성 (2) | 2023.12.05 |
Dart - final, const, & static (0) | 2023.12.03 |
Dart - Class, Abstract Class, and Interface (0) | 2023.11.29 |