Spec-Zone.ru › Scala 3.1

Класс-трайт scala.math.TotalOrdering

Объект-компаньон • Исходный код

трайт TotalOrdering extends Ordering[Double]

Порядок для Double, который является полностью согласованным полным порядком и рассматривает NaN как большее, чем все остальные значения Double; он ведет себя так же, как java.lang.Double.compare.

Поскольку поведение Double , заданное IEEE, не согласуется с полным порядком при работе с NaN, для Double определены два порядка: TotalOrdering, который согласуется с полным порядком, и IeeeOrdering, который согласуется по возможности со спецификацией IEEE и операциями с плавающей точкой, определёнными в scala.math.

Этот порядок может быть предпочтительным для сортировки коллекций.

См. также

IeeeOrdering

Супертипы
трайт Ordering[Double]
трайт PartialOrdering[Double]
трайт Equiv[Double]
трайт Serializable
трайт Comparator[Double]
класс Object
трайт Matchable
класс Any
Известные подтипы
объект DeprecatedDoubleOrdering.type
объект TotalOrdering.type

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

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

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

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

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

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

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

Наследованные методы

Исходный код
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 == this.reverse.

END_OF_DOCUMENT_MARKER ```

Реализации должны переопределять этот метод только в том случае, если они также переопределяют 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[Double]

Создаёт 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: Double => S)(implicit ord: Ordering[S]): Ordering[Double]

Принимая функцию 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[Double]

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

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

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

def reversed(): Comparator[Double]

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

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

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

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

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

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

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

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

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

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

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

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

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

Исходный код
def tryCompare(x: Double, y: Double): Option[Int]

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

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

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

Исходный код
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.1.1/scala/math/Ordering$$Double$$TotalOrdering.html

Spec-Zone.ru

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