Comparable абстрактный класс
Интерфейс, используемый типами, имеющими внутренний порядок.
Операция compareTo определяет полное упорядочение объектов, которое может использоваться для упорядочения и сортировки.
Интерфейс Comparable должен использоваться для естественного порядка типа. Если тип может быть упорядочен более чем одним способом, и ни один из них не является очевидным естественным порядком, то лучше не использовать интерфейс Comparable и вместо этого предоставить отдельные компараторы Comparator.
Рекомендуется, чтобы порядок Comparable соответствовал оператору равенства == (a.compareTo(b) == 0 тогда и только тогда, когда a == b), но это не является требованием. Например, у double и DateTime есть compareTo методы, которые не согласуются с оператором ==. Для чисел с плавающей точкой метод compareTo более точен, чем равенство, а для DateTime он менее точен.
Примеры:
(0.0).compareTo(-0.0); // => 1 0.0 == -0.0; // => true var dt = new DateTime.now(); var dt2 = dt.toUtc(); dt == dt2; // => false dt.compareTo(dt2); // => 0
Интерфейс Comparable не подразумевает существование операторов сравнения <, <=, > и >=. Они должны быть определены только в том случае, если порядок является порядком меньше/больше, то есть порядком, в котором вы естественным образом использовали бы слова "меньше, чем" в отношении порядка двух элементов.
Если оператор равенства и compareTo не согласуются, операторы сравнения должны следовать за оператором равенства и, скорее всего, также не будут согласовываться с compareTo. В противном случае они должны соответствовать методу compareTo, чтобы a < b тогда и только тогда, когда a.compareTo(b) < 0.
Класс double определяет операторы сравнения, совместимые с равенством. Операторы отличаются от double.compareTo для -0.0 и NaN.
Класс DateTime не имеет операторов сравнения, вместо этого он имеет более точно названные методы DateTime.isBefore и DateTime.isAfter.
Статические методы
- compare(
Comparable a, Comparable b) → int -
Компаратор, сравнивающий один объект с другим.
Конструкторы
- Comparable()
Свойства
- hashCode → int только для чтения, унаследованное
-
Хеш-код этого объекта.
- runtimeType → Type только для чтения, унаследованное
-
Представление runtime типа объекта.
Операторы
- operator ==(
other) → bool унаследованное -
Оператор равенства.
Методы
- compareTo(
T other) → int -
Сравнивает этот объект с другим объектом Comparable.
- noSuchMethod(
Invocation invocation) → dynamic унаследованное -
Вызывается при попытке обратиться к несуществующему методу или свойству.
- toString(
) → String унаследованное -
Возвращает строковое представление этого объекта.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Comparable-class.html