Spec-Zone.ru › Scala 3.2

Object Ordering.TotalOrdering

Класс-компаньон • Исходный код

объект TotalOrdering extends TotalOrdering

Наследуемые типы
тракт TotalOrdering
тракт Ordering[Double]
тракт PartialOrdering[Double]
тракт Equiv[Double]
тракт Serializable
тракт Comparator[Double]
класс Object
тракт Matchable
класс Any
Тип "self"
TotalOrdering.type

Наследуемые классы-подобные

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

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

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

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

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

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

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

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

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

Наследован от TotalOrdering

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает x если x больше или равно y, иначе y.

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

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

Возвращает x если x меньше или равно y, иначе y.

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

Исходный код
def on[U](f: U => Double): 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[Double]): 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: Double => 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[_ >: Double <: <FromJavaObject>, _ <: U]): Comparator[T]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Source
implicit def mkOrderingOps(lhs: Double): 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/math/Ordering$$Double$$TotalOrdering$.html

Spec-Zone.ru

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