Spec-Zone.ru › Scala 3.1

Трейт scala.math.TotalOrdering

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

Трейт TotalOrdering extends Ordering[Float]

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

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

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

См. также

IeeeOrdering

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Исходный код
def on[U](f: U => Float): 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[Float]): Ordering[Float]

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

Учитывая 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[Float]

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

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

Definition Classes Ordering -> PartialOrdering
Inherited from Ordering

def reversed(): Comparator[Float]

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

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

Inherited from Ordering

Inherited implicits

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

Spec-Zone.ru

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