Spec-Zone.ru › Dart 1

dart:core

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.

Реализовано в
  • DateTime
  • Duration
  • num
  • String

Статические методы

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

Spec-Zone.ru

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