Трейт Ordering.OptionOrdering
| Суперайпы |
|---|
Наследуемые классы
Исходный код
класс OrderingOps(lhs: T)
Этот внутренний класс определяет операторы сравнения, доступные для T.
Он не может расширять AnyVal, потому что это не класс верхнего уровня или член статически доступного объекта.
| Наследуется от | Ordering |
|---|
Абстрактные методы
Исходный код
def optionOrdering: Ordering[T]
Конкретные методы
Исходный код
Возвращает целое число, знак которого указывает, как x сравнивается с y.
Знак результата имеет следующее значение:
- отрицательный, если x < y - положительный, если x > y - нулевой, иначе (если x == y)
Исходный код
Сравнивает объект-получатель (this) с объектом-аргументом (that) на эквивалентность.
Любая реализация этого метода должна быть отношением эквивалентности:
- Он рефлексивен: для любого экземпляра x типа Any, x.equals(x) должен вернуть true. - Он симметричен: для любых экземпляров x и y типа Any, x.equals(y) должен вернуть true тогда и только тогда, когда y.equals(x) возвращает true. - Он транзитивен: для любых экземпляров x, y, и z типа Any если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должен вернуть true.
Если вы переопределяете этот метод, вы должны проверить, что ваша реализация остается отношением эквивалентности. Кроме того, при переопределении этого метода обычно необходимо переопределить hashCode, чтобы гарантировать, что объекты, которые являются «равными» (o1.equals(o2) возвращает true), имеют одинаковые хэш-коды (o1.hashCode.equals(o2.hashCode)).
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Определения классов | Comparator -> Any |
Исходный код
Вычислите хэш-код объекта.
Алгоритм хэширования по умолчанию зависит от платформы.
Обратите внимание, что разрешается, чтобы у двух объектов были идентичные хэш-коды (o1.hashCode.equals(o2.hashCode)), но они не были равны (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), у них были идентичные хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода обязательно проверьте, что поведение согласуется с методом equals.
| Возвращает | значение хэш-кода для этого объекта. |
|---|---|
| Определения классов | Any |
Наследуемые методы
Исходный код
Возвращает true, если x == y в порядке сортировки.
| Определения классов | Ordering -> PartialOrdering -> Equiv |
|---|---|
| Наследуется от | Ordering |
Исходный код
Возвращает true, если x > y в порядке сортировки.
| Определения классов | Ordering -> PartialOrdering |
|---|---|
| Наследуется от | Ordering |
Исходный код
Возвращает true, если x >= y в порядке сортировки.
| Определения классов | Ordering -> PartialOrdering |
|---|---|
| Наследуется от | Ordering |
Исходный код
Возвращает true, если порядок other является обратным порядком этого порядка.
Эквивалентно other == this.reverse.
Реализации должны переопределять этот метод только в том случае, если они переопределяют reverse также.
| Наследуется от | Ordering |
|---|
Исходный код
Возвращает true, если x < y в порядке сортировки.
| Определения классов | Ordering -> PartialOrdering |
|---|---|
| Наследуется от | Ordering |
Исходный код
Возвращает true, если x <= y в порядке сортировки.
| Определения классов | Ordering -> PartialOrdering |
|---|---|
| Наследуется от | Ordering |
Исходный код
Возвращает x если x >= y, в противном случае y.
| Наследуется от | Ordering |
|---|
Исходный код
Возвращает x если x <= y, в противном случае y.
| Наследуется от | Ordering |
|---|
Source
Принимая f, функцию из U в T, создаёт Ordering[U], чья функция сравнения эквивалентна:
def compare(x:U, y:U) = Ordering[T].compare(f(x), f(y))
| Inherited from | Ordering |
|---|
Source
Создаёт Ordering[T], чья функция сравнения возвращает результат функции сравнения этого Ordering, если она не равна нулю, или же результат функции сравнения other.
| Параметры значения |
|
|---|---|
| Пример |
case class Pair(a: Int, b: Int)
val pairOrdering = Ordering.by[Pair, Int](_.a)
.orElse(Ordering.by[Pair, Int](_.b))
|
| Inherited from | Ordering |
Source
Принимая f, функцию из T в S, создаёт Ordering[T], чья функция сравнения возвращает результат функции сравнения этого Ordering, если она не равна нулю, или же результат, эквивалентный:
Ordering[S].compare(f(x), f(y))
Эта функция эквивалентна передаче результата Ordering.by(f) в orElse.
| Пример |
case class Pair(a: Int, b: Int)
val pairOrdering = Ordering.by[Pair, Int](_.a)
.orElseBy[Int](_.b)
|
|---|---|
| Inherited from | Ordering |
Source
Возвращает обратный порядок этого.
Реализации, переопределяющие этот метод, ДОЛЖНЫ также переопределить isReverseOf, если они изменяют поведение (например, кеширование не требует переопределения).
| Классы определения | Ordering -> PartialOrdering |
|---|---|
| Inherited from | Ordering |
def reversed(): Comparator[T]
| Inherited from | Comparator |
|---|
def thenComparing[U <: Comparable[_ >: U <: <FromJavaObject>]](x$0: Function[_ >: Option[T] <: <FromJavaObject>, _ <: U]): Comparator[T]
| Inherited from | Comparator |
|---|
def thenComparing[U <: <FromJavaObject>](x$0: Function[_ >: Option[T] <: <FromJavaObject>, _ <: U], x$1: Comparator[_ >: U <: <FromJavaObject>]): Comparator[T]
| Inherited from | Comparator |
|---|
| Inherited from | Comparator |
|---|
| Inherited from | Comparator |
|---|
| Inherited from | Comparator |
|---|
| Inherited from | Comparator |
|---|
Source
Возвращает, определено ли сравнение между x и y, и если да, то результат compare(x, y).
| Inherited from | Ordering |
|---|
Inherited implicits
Source
Этот неявный метод дополняет T операторами сравнения, определёнными в scala.math.Ordering.Ops.
| Inherited from | Ordering |
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/math/Ordering$$OptionOrdering.html