Spec-Zone.ru › Scala 3.2

Объект int.int

Исходный код

объект int

Суперанимации
класс Object
тракт Matchable
класс Any
Тип "self"
int.type

Типы

Исходник
тип %[X <: Int, Y <: Int] <: Int

Остаток от деления X на Y.

import compiletime.ops.int._
val mod: 5 % 2 = 1

Исходник
тип *[X <: Int, Y <: Int] <: Int

Умножение двух Int типов-синглетонов.

import compiletime.ops.int._
val mul: 4 * 2 = 8

Исходник
тип +[X <: Int, Y <: Int] <: Int

Сложение двух Int типов-синглетонов.

import compiletime.ops.int._
val sum: 2 + 2 = 4

Исходник
тип -[X <: Int, Y <: Int] <: Int

Вычитание двух Int типов-синглетонов.

import compiletime.ops.int._
val sub: 4 - 2 = 2

Исходник
тип /[X <: Int, Y <: Int] <: Int

Целочисленное деление двух Int типов-синглетонов.

import compiletime.ops.int._
val div: 5 / 2 = 2

Исходник
тип <[X <: Int, Y <: Int] <: Boolean

Сравнение "меньше" двух Int типов-синглетонов.

import compiletime.ops.int._
val lt1: 4 < 2 = false
val lt2: 2 < 4 = true

Исходник
тип <<[X <: Int, Y <: Int] <: Int

Левый сдвиг битов X на Y позиций.

import compiletime.ops.int._
val lshift: 1 << 2 = 4

Исходник
тип <=[X <: Int, Y <: Int] <: Boolean

Сравнение "меньше или равно" двух Int типов-синглетонов.

import compiletime.ops.int._
val lt1: 4 <= 2 = false
val lt2: 2 <= 2 = true

Исходник
тип >[X <: Int, Y <: Int] <: Boolean

Сравнение "больше" двух Int типов-синглетонов.

import compiletime.ops.int._
val gt1: 4 > 2 = true
val gt2: 2 > 2 = false

Исходник
тип >=[X <: Int, Y <: Int] <: Boolean

Сравнение "больше или равно" двух Int типов-синглетонов.

import compiletime.ops.int._
val ge1: 4 >= 2 = true
val ge2: 2 >= 3 = false

Исходник
тип >>[X <: Int, Y <: Int] <: Int

Правый сдвиг битов X на Y позиций.

import compiletime.ops.int._
val rshift: 10 >> 1 = 5

Исходник
тип >>>[X <: Int, Y <: Int] <: Int

Правый сдвиг битов X на Y, заполняя слева нулями.

import compiletime.ops.int._
val rshiftzero: 10 >>> 1 = 5

Исходник
тип Abs[X <: Int] <: Int

Модуль числа Int типа-синглетона.

import compiletime.ops.int._
val abs: Abs[-1] = 1

Исходник
тип BitwiseAnd[X <: Int, Y <: Int] <: Int

Побитовое И X и Y.

import compiletime.ops.int._
val and1: BitwiseAnd[4, 4] = 4
val and2: BitwiseAnd[10, 5] = 0

Исходник
тип BitwiseOr[X <: Int, Y <: Int] <: Int

Побитовое ИЛИ X и Y.

import compiletime.ops.int._
val or: BitwiseOr[10, 11] = 11

Исходник
тип Max[X <: Int, Y <: Int] <: Int

Максимум из двух Int типов-синглетонов.

import compiletime.ops.int._
val max: Max[-1, 1] = 1

Исходник
тип Min[X <: Int, Y <: Int] <: Int

Минимум из двух Int типов-синглетонов.

import compiletime.ops.int._
val min: Min[-1, 1] = -1

Исходник
тип Negate[X <: Int] <: Int

Отрицание Int типа-синглетона.

import compiletime.ops.int._
val neg1: Negate[-1] = 1
val neg2: Negate[1] = -1

Исходник
тип NumberOfLeadingZeros[X <: Int] <: Int

Количество нулей перед старшим битом в двоичном представлении числа в дополнительном коде. Возвращает 32, если в двоичном представлении нет единиц, то есть, если число равно нулю.

import compiletime.ops.int._
val zero_lzc: NumberOfLeadingZeros[0] = 32
val eight_lzc: NumberOfLeadingZeros[8] = 28
type Log2[N <: Int] = 31 - NumberOfLeadingZeros[N]
val log2of8: Log2[8] = 3

Исходник
тип S[N <: Int] <: Int

Последователь натурального числа, где ноль - тип 0, а последователи уменьшаются как если бы определение было:

import compiletime.ops.int._
type S[N <: Int] <: Int = N match {
  case 0 => 1
  case 1 => 2
  case 2 => 3
  // ...
  case 2147483646 => 2147483647
}

Исходник
тип ToDouble[X <: Int] <: Double

Преобразование в тип Double Int типа-синглетона.

import compiletime.ops.int._
val x: ToDouble[1] = 1.0

Исходник
тип ToFloat[X <: Int] <: Float

Преобразование в тип Float Int типа-синглетона.

import compiletime.ops.int._
val x: ToFloat[1] = 1.0f

Исходник
тип ToLong[X <: Int] <: Long

Длительная конвертация Int одиночного типа.

import compiletime.ops.int._
val x: ToLong[1] = 1L

Исходный код
type ^[X <: Int, Y <: Int] <: Int

Побитовое исключающее ИЛИ X и Y.

import compiletime.ops.int._
val xor: 10 ^ 30 = 20

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/compiletime/ops/int$.html

Spec-Zone.ru

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