Spec-Zone.ru › Scala 3.2

Трейт Ordering.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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эквивалентно 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

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[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

Source
override def reverse: Ordering[T]

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

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

Definition Classes Ordering -> PartialOrdering
Inherited from Ordering

def reversed(): Comparator[T]

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

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

Inherited from Ordering

Inherited implicits

Source
implicit def mkOrderingOps(lhs: Double): OrderingOps

Этот неявный метод дополняет 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$$Double$$TotalOrdering.html

Spec-Zone.ru

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