абстрактный метод operator ==
- Object other
Проверяет, численно ли это значение равно other.
Если оба операнда имеют тип double, они равны, если их представления совпадают, за исключением следующих случаев:
- Ноль и минус ноль (0.0 и -0.0) считаются равными. Оба имеют числовое значение ноль.
- NaN не равен ничему, включая NaN. Если хотя бы один из операндов — NaN, результат всегда false.
Если один операнд имеет тип double, а другой — int, они равны, если значение double является целым (конечным и не имеющим дробной части), а числа имеют одинаковое числовое значение.
Если оба операнда — целые числа, они равны, если имеют одинаковое значение.
Возвращает false, если other не является значением типа num.
Обратите внимание, что поведение для NaN не является рефлексивным. Это означает, что равенство значений double не является корректным отношением равенства, каким оно, в противном случае, должно быть для operator==. Использование NaN, например, в HashSet приведёт к неправильной работе. Такое поведение соответствует стандартному правилу IEEE-754 для сравнения double на равенство.
Если удаётся избежать значений NaN, оставшиеся значения double образуют корректное отношение равенства и могут безопасно использоваться.
Используйте compareTo для сравнения, которое различает ноль и минус ноль и считает значения NaN равными.
Реализация
bool operator ==(Object other);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/num/operator_equals.html