Spec-Zone.ru › Dart 2

dart:core

Класс Comparable<T>

Интерфейс, используемый типами, имеющими внутреннее упорядочение.

Операция compareTo определяет полное упорядочение объектов, которое можно использовать для упорядочения и сортировки.

Интерфейс Comparable следует использовать для естественного упорядочения типа. Если тип может быть упорядочен несколькими способами, и ни один из них не является очевидным естественным упорядочением, то может быть лучше не использовать интерфейс Comparable, а предоставить отдельные компараторы вместо этого.

Рекомендуется, чтобы порядок Comparable согласовывался с равенством оператора operator == (a.compareTo(b) == 0 тогда и только тогда, когда a == b), но это не является требованием. Например, double и DateTime имеют compareTo методы, которые не согласуются с оператором operator ==. Для чисел с плавающей точкой метод 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 тогда и только тогда, когда a.compareTo(b) < 0.

Класс double определяет операторы сравнения, совместимые с равенством. Операторы отличаются от double.compareTo для -0.0 и NaN.

Класс 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
Компаратор, сравнивающий один сравнимый объект с другим.

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Comparable-class.html

Spec-Zone.ru

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