Класс Comparable< T>
Интерфейс для типов, имеющих естественный порядок.
Операция compareTo задаёт полный порядок объектов, который можно использовать для упорядочивания и сортировки.
Интерфейс Comparable следует использовать для естественного порядка типа. Если тип можно упорядочить несколькими способами и ни один из них не является очевидным естественным порядком, возможно, лучше не использовать интерфейс Comparable, а вместо этого предоставить отдельные Comparator.
Рекомендуется, чтобы порядок Comparable соответствовал равенству, определяемому оператором operator == (a.compareTo(b) == 0 iff a == b), но это не является обязательным требованием. Например, у double и DateTime методы compareTo не согласуются с оператором operator ==. Для значений double метод compareTo точнее, чем проверка на равенство, а для DateTime — менее точен.
Примеры:
(0.0).compareTo(-0.0); // => 1 0.0 == -0.0; // => true var now = DateTime.now(); var utcNow = now.toUtc(); now == utcNow; // => false now.compareTo(utcNow); // => 0
Интерфейс Comparable не подразумевает наличия операторов сравнения <, <=, > и >=. Их следует определять только в том случае, если порядок является порядком «меньше/больше», то есть таким порядком, при описании которого двух элементов естественно использовать слова «меньше» или «больше».
Если оператор равенства и compareTo расходятся, операторы сравнения должны следовать оператору равенства и, вероятно, также будут расходиться с compareTo. В противном случае они должны соответствовать методу compareTo, чтобы a < b iff a.compareTo(b) < 0.
Класс double определяет операторы сравнения, совместимые с равенством. Для значений -0.0 и NaN операторы отличаются от double.compareTo.
У класса DateTime нет операторов сравнения; вместо них он предоставляет более точно названные методы DateTime.isBefore и DateTime.isAfter, оба из которых согласуются с DateTime.compareTo.
Конструкторы
- Comparable()
Свойства
- hashCode → int только для чтенияунаследовано
- Хеш-код этого объекта.
- runtimeType → Type только для чтенияунаследовано
- Представление типа объекта во время выполнения.
Методы
- compareTo(
T other) → int - Сравнивает этот объект с другим объектом.
- noSuchMethod(
Invocation invocation) → dynamic унаследовано - Вызывается при обращении к несуществующему методу или свойству.
- toString(
) → String унаследовано - Строковое представление этого объекта.
Операторы
- operator ==(
Object other) → bool унаследовано - Оператор равенства.
Статические методы
- compare(
Comparable a, Comparable b) → int - Comparator, сравнивающий один сравнимый объект с другим.
© 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/Comparable-class.html