Sobes.tech
Back to questions
Junior — Middle
137

Каким образом можно реализовать собственное поведение сравнительных операторов в Dart?

Companies where asked
ЯндексЯндекс

Answer from AI

sobes.tech AI

В Dart для реализации собственного поведения сравнительных операторов можно переопределить оператор == и метод compareTo (если класс реализует интерфейс Comparable).

Пример переопределения оператора == и метода hashCode для корректного сравнения объектов:

class Person {
  final String name;
  final int age;

  Person(this.name, this.age);

  @override
  bool operator ==(Object other) {
    if (identical(this, other)) return true;
    return other is Person && other.name == name && other.age == age;
  }

  @override
  int get hashCode => name.hashCode ^ age.hashCode;
}

Для сортировки объектов можно реализовать Comparable и метод compareTo:

class Person implements Comparable<Person> {
  final String name;
  final int age;

  Person(this.name, this.age);

  @override
  int compareTo(Person other) {
    return age.compareTo(other.age);
  }
}

Таким образом, вы задаёте собственную логику сравнения объектов.