Spec-Zone.ru › Scala 3.1

Трейт scala.math.Numeric

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

трейт Numeric[T] extends Ordering[T]

Супертипы
трейт Ordering[T]
трейт PartialOrdering[T]
трейт Equiv[T]
трейт Serializable
трейт Comparator[T]
класс Object
трейт Matchable
класс Any
Известные подтипы
23 типа
трейт Fractional[T]
трейт BigDecimalIsFractional
объект BigDecimalIsFractional.type
трейт DoubleIsFractional
объект DoubleIsFractional.type
трейт FloatIsFractional
объект FloatIsFractional.type
трейт Integral[T]
трейт BigDecimalAsIfIntegral
объект BigDecimalAsIfIntegral.type
трейт BigIntIsIntegral
объект BigIntIsIntegral.type
трейт ByteIsIntegral
объект ByteIsIntegral.type
трейт CharIsIntegral
объект CharIsIntegral.type
трейт IntIsIntegral
объект IntIsIntegral.type
трейт LongIsIntegral
объект LongIsIntegral.type
трейт ShortIsIntegral
объект ShortIsIntegral.type
трейт BigDecimalIsConflicted

Классы

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

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

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

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

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

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

Абстрактные методы

Исходный код
def fromInt(x: Int): T

Исходный код
def minus(x: T, y: T): T

Исходный код
def negate(x: T): T

Исходный код
def parseString(str: String): Option[T]

Исходный код
def plus(x: T, y: T): T

Исходный код
def times(x: T, y: T): T

Исходный код
def toDouble(x: T): Double

Исходный код
def toFloat(x: T): Float

Исходный код
def toInt(x: T): Int

Исходный код
def toLong(x: T): Long

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

Исходный код
def abs(x: T): T

Исходный код
def one: T

Исходный код
def sign(x: T): T

Исходный код
def zero: T

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник
override def lteq(x: T, y: T): Boolean

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

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

Источник
def max[U <: T](x: U, y: U): U

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

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

Источник
def min[U <: T](x: U, y: U): U

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

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

Источник
def on[U](f: U => T): 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[T]): 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: T => 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[_ >: T <: <FromJavaObject>, _ <: U]): Comparator[T]

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

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

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

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

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

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

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

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

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

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

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

Источник
def tryCompare(x: T, y: T): Option[Int]

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

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

Неявные методы

Источник
implicit def mkNumericOps(lhs: T): NumericOps

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

Источник
implicit def mkOrderingOps(lhs: T): 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/Numeric.html

Spec-Zone.ru

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