Sobes.tech
Junior — Middle

Hogyan valósítható meg saját viselkedése a összehasonlító operátoroknak Dartban?

sobes.tech MI

Válasz az MI-től

Dartban saját viselkedést a összehasonlító operátorokhoz a == operátor és a compareTo metódus felülírásával valósíthat meg (ha az osztály implementálja a Comparable interfészt).

Példa a == operátor és a hashCode metódus helyes összehasonlításra való felülírására:

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;
}

Az objektumok rendezéséhez implementálhatja a Comparable-t és a compareTo metódust:

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);
  }
}

Így határozza meg az egyedi összehasonlási logikát.