Spec-Zone.ru › Scala 3.2

Перечисление объектов.ValueOrdering

Исходный код

объект ValueOrdering extends Ordering[Value]

Порядок сортировки значений в этом наборе по идентификатору.

Наследуемые типы
Трейт Ordering[Value]
Трейт PartialOrdering[Value]
Трейт Equiv[Value]
Трейт Serializable
Трейт Comparator[Value]
Класс Object
Трейт Matchable
Класс Any
Тип самого себя
ValueOrdering.type

Наследуемые классы

Исходный код
класс OrderingOps(lhs: T)

Этот внутренний класс определяет операторы сравнения, доступные для T.

Он не может расширить AnyVal , так как он не является верхним классом или членом статически доступного объекта.

Наследуется от Ordering

Конкретные методы

Исходный код
def compare(x: Value, y: Value): Int

Возвращает целое число, знак которого показывает, как x сравнивается с y.

Знак результата имеет следующее значение:

- отрицательное, если x < y - положительное, если x > y - ноль в противном случае (если x == y)

Наследуемые методы

Исходный код
override def equiv(x: Value, y: Value): Boolean

Возвращает true, если x равно y в порядке сортировки.

Определяющие классы Ordering -> PartialOrdering -> Equiv
Наследуется от Ordering

Исходный код
override def gt(x: Value, y: Value): Boolean

Возвращает true, если x > y в порядке сортировки.

Определяющие классы Ordering -> PartialOrdering
Наследуется от Ordering

Исходный код
override def gteq(x: Value, y: Value): Boolean

Возвращает true, если x >= y в порядке сортировки.

Определяющие классы Ordering -> PartialOrdering
Наследуется от Ordering

Исходный код
def isReverseOf(other: Ordering[_]): Boolean

Возвращает true, если другой порядок сортировки является обратным по отношению к этому порядку сортировки.

Эквивалентно other == this.reverse.

Реализации должны переопределять этот метод только в том случае, если они также переопределяют reverse.

Наследуется от Ordering

Исходный код
override def lt(x: Value, y: Value): Boolean

Возвращает true, если x < y в порядке сортировки.

Определяющие классы Ordering -> PartialOrdering
Наследуется от Ordering

Исходный код
override def lteq(x: Value, y: Value): Boolean

Возвращает true, если x <= y в порядке сортировки.

Определяющие классы Ordering -> PartialOrdering
Наследуется от Ordering

Исходный код
def max[U <: Value](x: U, y: U): U

Возвращает x, если x >= y, в противном случае y.

Наследуется от Ordering

Исходный код
def min[U <: Value](x: U, y: U): U

Возвращает x, если x <= y, в противном случае y.

Наследуется от Ordering

Исходный код
def on[U](f: U => Value): Ordering[U]

Учитывая f, функцию от U к T, создаёт Ordering[U], чья функция сравнения эквивалентна:

def compare(x:U, y:U) = Ordering[T].compare(f(x), f(y))
Наследуется от Ordering

Исходный код
def orElse(other: Ordering[Value]): Ordering[T]

Создаёт Ordering[T], чья функция сравнения возвращает результат функции сравнения этого Ordering, если она не равна нулю, иначе результат функции сравнения other.

Параметры значения
other

порядок сортировки, который использовать, если этот порядок сортировки возвращает ноль

Пример
case class Pair(a: Int, b: Int)
val pairOrdering = Ordering.by[Pair, Int](_.a)
                          .orElse(Ordering.by[Pair, Int](_.b))
Наследуется от Ordering

Исходный код
def orElseBy[S](f: Value => S)(implicit ord: Ordering[S]): Ordering[T]

Учитывая 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)
Наследуется от Ordering

Исходный код
override def reverse: Ordering[T]

Возвращает обратный порядок сортировки.

Реализации, переопределяющие этот метод, ОБЯЗАНЫ также переопределять isReverseOf, если они изменяют поведение (например, кеширование не требует переопределения).

Определяющие классы Ordering -> PartialOrdering
Наследуется от Ordering

def reversed(): Comparator[T]

Унаследовано от Comparator

def thenComparing[U <: Comparable[_ >: U <: <FromJavaObject>]](x$0: Function[_ >: Value <: <FromJavaObject>, _ <: U]): Comparator[T]

Унаследовано от Comparator

def thenComparing[U <: <FromJavaObject>](x$0: Function[_ >: Value <: <FromJavaObject>, _ <: U], x$1: Comparator[_ >: U <: <FromJavaObject>]): Comparator[T]

Унаследовано от Comparator

def thenComparing(x$0: Comparator[_ >: Value <: <FromJavaObject>]): Comparator[T]

Унаследовано от Comparator

def thenComparingDouble(x$0: ToDoubleFunction[_ >: Value <: <FromJavaObject>]): Comparator[T]

Унаследовано от Comparator

def thenComparingInt(x$0: ToIntFunction[_ >: Value <: <FromJavaObject>]): Comparator[T]

Унаследовано от Comparator

def thenComparingLong(x$0: ToLongFunction[_ >: Value <: <FromJavaObject>]): Comparator[T]

Унаследовано от Comparator

Source
def tryCompare(x: Value, y: Value): Option[Int]

Возвращает, определено ли сравнение между x и y, и если да, то результат compare(x, y).

Унаследовано от Ordering

Унаследованные неявные параметры

Source
implicit def mkOrderingOps(lhs: Value): OrderingOps

Этот неявный метод дополняет T операторами сравнения, определёнными в scala.math.Ordering.Ops.

Унаследовано от 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/Enumeration$ValueOrdering$.html

Spec-Zone.ru

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