Spec-Zone.ru › Scala 3.2

Trait Ordering.TotalOrdering

Companion object • Source code

trait TotalOrdering extends Ordering[Float]

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

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

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

См. также

IeeeOrdering

Надтипы
trait Ordering[Float]
trait PartialOrdering[Float]
trait Equiv[Float]
trait Serializable
trait Comparator[Float]
class Object
trait Matchable
class Any
Известные подтипы
object DeprecatedFloatOrdering.type
object TotalOrdering.type

Унаследованные классы

Source
class OrderingOps(lhs: T)

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

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

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

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

Source
def compare(x: Float, y: Float): Int

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

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

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

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

Source
override def equiv(x: Float, y: Float): Boolean

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

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

Source
override def gt(x: Float, y: Float): Boolean

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

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

Source
override def gteq(x: Float, y: Float): Boolean

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

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

Source
def isReverseOf(other: Ordering[_]): Boolean

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

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

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

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

Source
override def lt(x: Float, y: Float): Boolean

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

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

Source
override def lteq(x: Float, y: Float): Boolean

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

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

Source
def max[U <: Float](x: U, y: U): U

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

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

Source
def min[U <: Float](x: U, y: U): U

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

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

Source
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

Source
def orElse(other: Ordering[Float]): Ordering[T]

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

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

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

Пример
case class Pair(a: Int, b: Int)
val pairOrdering = Ordering.by[Pair, Int](_.a)
                          .orElse(Ordering.by[Pair, Int](_.b))
Унаследованно от Ordering

Source
def orElseBy[S](f: Float => 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[_ >: Float <: <FromJavaObject>, _ <: U]): Comparator[T]

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

Inherited from Comparator

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

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.2.0/scala/math/Ordering$$Float$$TotalOrdering.html

Spec-Zone.ru

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