Spec-Zone.ru › Scala 3.1

Трейт scala.math.Integral

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

Трейт Integral[T] extends Numeric[T]

Супертипы
Трейт Numeric[T]
Трейт Ordering[T]
Трейт PartialOrdering[T]
Трейт Equiv[T]
Трейт Serializable
Трейт Comparator[T]
Класс Object
Трейт Matchable
Класс Any
Известные подтипы
Трейт BigDecimalAsIfIntegral
Объект BigDecimalAsIfIntegral.type
Трейт BigIntIsIntegral
Объект BigIntIsIntegral.type
Трейт ByteIsIntegral
Объект ByteIsIntegral.type
Трейт CharIsIntegral
Объект CharIsIntegral.type
Трейт IntIsIntegral
Объект IntIsIntegral.type
Трейт LongIsIntegral
Объект LongIsIntegral.type
Трейт ShortIsIntegral
Объект ShortIsIntegral.type

Классы

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

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

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

Наследованный от Numeric

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

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

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

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

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

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

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

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

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

Наследованный от Numeric

Исходный код
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

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

Наследованный от Numeric

Исходный код
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 является обратным порядком этого порядка.

Эквивалентно 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 minus(x: T, y: T): T

Наследованный от Numeric

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

Наследованный от Numeric

Исходный код
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 one: T

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

Исходный код
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

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

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

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

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

Исходный код
override def reverse: Ordering[T]

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

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

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

def reversed(): Comparator[T]

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

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

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

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 times(x: T, y: T): T

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

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

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

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

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

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

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

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

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

Исходный код
def tryCompare(x: T, y: T): Option[Int]

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

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

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

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

Явные

Исходный код
implicit override def mkNumericOps(lhs: T): IntegralOps

Definition Classes Numeric

Inherited implicits

Source
implicit def mkOrderingOps(lhs: T): 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/Integral.html

Spec-Zone.ru

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