Spec-Zone.ru › Scala 3.2

Характеристика Ordering.SymbolOrdering

Исходный код

трайт SymbolOrdering extends Ordering[Symbol]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Source
implicit def mkOrderingOps(lhs: Symbol): 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$$SymbolOrdering.html

Spec-Zone.ru

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