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.