Spec-Zone.ru › Scala 3.1

Объект scala.ValueOrdering

Исходный код

объект ValueOrdering расширяет 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

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

Исходный код
переопределенный def equiv(x: Value, y: Value): Boolean

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

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

Исходный код
переопределенный def gt(x: Value, y: Value): Boolean

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

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

Исходный код
переопределенный def gteq(x: Value, y: Value): Boolean

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

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

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

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

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

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

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

Исходный код
переопределенный 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[Value]

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

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

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

Пример
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[Value]

Принимая 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[Value]

Возвращает противоположный порядок данного.

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

Классы определений Ordering -> PartialOrdering
Унаследовано от Ordering

def reversed(): Comparator[Value]

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

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

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

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

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

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

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

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

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

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

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

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

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

Spec-Zone.ru

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