Spec-Zone.ru › Dart 2

dart:core

Класс 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.

Реализаторы
  • BigInt
  • DateTime
  • Duration
  • num
  • String

Конструкторы

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API