모바일 개발/Dart&Flutter
Dart equatable 라이브러리 설명 및 사용법
zaninote
2023. 8. 22. 14:29
equatable은 Dart에서 객체의 동등성을 쉽게 구현할 수 있도록 도와주는 패키지입니다.
Dart에서 기본적으로 제공하는 == 연산자는 객체의 참조 동등성을 검사합니다.
즉, 두 객체가 동일한 메모리 주소를 가리키는 경우에만 true를 반환합니다.
그러나 때로는 두 객체의 속성 값이 동일한 경우에도 객체를 동등하다고 간주하고 싶을 수 있습니다.
이때 equatable 패키지가 유용합니다.
equatable 패키지를 사용하려면 먼저 pubspec.yaml 파일에 의존성을 추가해야 합니다:
dependencies:
equatable: ^2.0.3
equatable의 사용법:
import 'package:equatable/equatable.dart';
class Person extends Equatable {
final String name;
final int age;
Person(this.name, this.age);
@override
List<Object> get props => [name, age];
}
void main() {
final person1 = Person("John", 25);
final person2 = Person("John", 25);
final person3 = Person("Doe", 30);
print(person1 == person2); // true, because their properties are the same
print(person1 == person3); // false, because their properties are different
}
위의 예제에서 Person 클래스는 Equatable을 확장하고, props getter를 통해 name과 age 속성을 반환합니다.
이제 == 연산자를 사용하여 두 Person 객체의 속성 값이 동일한지 비교할 수 있습니다.
equatable 패키지는 객체의 동등성을 검사하는 코드를 간결하게 만들어 줍니다. 또한 hashCode도 자동으로 처리되므로, 동등성 검사와 해시 코드 생성을 수동으로 구현할 필요가 없습니다.