Метод оператора ==
bool operator ==(Оператор равенства.
По умолчанию все Object возвращают true только тогда, когда this и other являются одним и тем же объектом.
Переопределите этот метод, чтобы указать другое отношение равенства для класса. Переопределенный метод должен оставаться отношением эквивалентности. То есть он должен быть:
-
Полным: он должен возвращать boolean для всех аргументов. Он никогда не должен выбрасывать исключение или возвращать
null. -
Рефлексивным: для всех объектов
o,o == oдолжно быть true. -
Симметричным: для всех объектов
o1иo2,o1 == o2иo2 == o1должны быть либо оба истинными, либо оба ложными. -
Транзитивным: для всех объектов
o1,o2, иo3, еслиo1 == o2иo2 == o3истинны, тоo1 == o3должно быть истинным.
Метод также должен быть согласован со временем, поэтому равенство двух объектов должно изменяться только в том случае, если хотя бы один из объектов был изменен.
Если подкласс переопределяет оператор равенства, он также должен переопределить метод hashCode для поддержания согласованности.
Исходный код
bool operator ==(other) {
if (other is! Rectangle) return false;
return left == other.left &&
top == other.top &&
right == other.right &&
bottom == other.bottom;
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-math/MutableRectangle/operator_equals.html