Junior — Middle
Como é que se pode implementar o comportamento próprio dos operadores de comparação em Dart?
sobes.tech IA
Resposta da IA
Em Dart, para implementar comportamentos personalizados dos operadores de comparação, pode sobrescrever o operador == e o método compareTo (se a classe implementar a interface Comparable).
Exemplo de sobrescrita do operador == e do método hashCode para uma comparação correta de objetos:
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;
}
Para ordenar objetos, pode implementar Comparable e o método 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);
}
}
Desta forma, define uma lógica personalizada de comparação de objetos.