자니노트

Dart equatable 라이브러리 설명 및 사용법 본문

모바일 개발/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도 자동으로 처리되므로, 동등성 검사와 해시 코드 생성을 수동으로 구현할 필요가 없습니다.

 

Comments