int
Встроенный тип для целых чисел.
Описание
Знаковый 64-битный целочисленный тип. Это означает, что он может принимать значения от -2^63 до 2^63 - 1, т.е. от -9223372036854775808 до 9223372036854775807. При выходе за эти границы произойдет циклический возврат.
int-ы могут быть автоматически преобразованы в float-ы при необходимости, например, при передаче их в качестве аргументов в функциях. float будет максимально близок к исходному целому числу.
Аналогично, float-ы можно автоматически преобразовать в int-ы. Это усечет float, отбросив все после плавающей точки.
Примечание: В булевом контексте int будет оцениваться как false, если он равен 0, и как true в противном случае.
var x: int = 1 # х равен 1
x = 4.2 # x равен 4, потому что 4.2 усекается
var max_int = 9223372036854775807 # Наибольшее значение, которое может хранить int
max_int += 1 # max_int равен -9223372036854775808, потому что он обернулся вокруг
int x = 1; // x равен 1
x = (int)4.2; // x равен 4, потому что 4.2 усекается
// Ниже мы используем long, поскольку int в GDScript является 64-битным, а int в C# — 32-битным.
long maxLong = 9223372036854775807; // Наибольшее значение, которое может храниться в long
maxLong++; // maxLong равен now -9223372036854775808, потому что он обернулся.
// Альтернативой может служить 32-битный тип int в C#, имеющий меньшее максимальное значение.
int maxInt = 2147483647; // Наибольшее значение, которое может хранить int
maxInt++; // maxInt теперь равен -2147483648, потому что он был перенесен
Вы можете использовать литерал 0b для двоичного представления, литерал 0x для шестнадцатеричного представления и символ _ для разделения длинных чисел и улучшения читаемости.
var x = 0b1001 # x равен 9
var y = 0xF5 # y равен 245
var z = 10_000_000 # z равен 10000000
int x = 0b1001; // x равен 9
int y = 0xF5; // y равен 245
int z = 10_000_000; // z равен 10000000
Конструкторы
int() |
|
Операторы
operator !=(right: float) |
|
operator !=(right: int) |
|
operator %(right: int) |
|
operator &(right: int) |
|
operator *(right: Color) |
|
operator *(right: Quaternion) |
|
operator *(right: Vector2) |
|
operator *(right: Vector2i) |
|
operator *(right: Vector3) |
|
operator *(right: Vector3i) |
|
operator *(right: Vector4) |
|
operator *(right: Vector4i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator **(right: float) |
|
operator **(right: int) |
|
operator +(right: float) |
|
operator +(right: int) |
|
operator -(right: float) |
|
operator -(right: int) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: float) |
|
operator <(right: int) |
|
operator <<(right: int) |
|
operator <=(right: float) |
|
operator <=(right: int) |
|
operator ==(right: float) |
|
operator ==(right: int) |
|
operator >(right: float) |
|
operator >(right: int) |
|
operator >=(right: float) |
|
operator >=(right: int) |
|
operator >>(right: int) |
|
operator ^(right: int) |
|
operator |(right: int) |
|
Описания конструктора
Создает int, установленный на 0.
Создает int как копию заданного int.
Создает новый int из String по тем же правилам, что и String.to_int().
Создает новый int из bool. true преобразуется в 1, а false преобразуется в 0.
Конструирует новый int из float. Это обрежет float, отбросив все, что находится после плавающей точки.
Описания оператора
bool operator !=(right: float) 🔗
Возвращает true, если int не эквивалентно float.
bool operator !=(right: int) 🔗
Возвращает true, если int-ы не равны.
Возвращает остаток после деления двух int. Использует усеченное деление, которое возвращает отрицательное число, если делимое отрицательно. Если это нежелательно, рассмотрите возможность использования @GlobalScope.posmod().
print(6 % 2) # Prints 0
print(11 % 4) # Prints 3
print(-5 % 3) # Prints -2
Выполняет побитовую операцию AND.
print(0b1100 & 0b1010) # Печатает 8 (двоичное 1000)
Это полезно для извлечения двоичных флагов из переменной.
var flags = 0b101
# Проверьте, включен ли первый или второй бит.
if flags & 0b011:
do_stuff() # Эта линия будет работать.
Color operator *(right: Color) 🔗
Умножает каждый компонент Color на int.
Quaternion operator *(right: Quaternion) 🔗
Умножает каждый компонент Quaternion на int. Эта операция сама по себе не имеет смысла, но ее можно использовать как часть большего выражения.
Vector2 operator *(right: Vector2) 🔗
Умножает каждый компонент Vector2 на int.
print(2 * Vector2(1, 4)) # Выводит (2, 8)
Vector2i operator *(right: Vector2i) 🔗
Умножает каждый компонент Vector2i на int.
Vector3 operator *(right: Vector3) 🔗
Умножает каждый компонент Vector3 на int.
Vector3i operator *(right: Vector3i) 🔗
Умножает каждый компонент Vector3i на int.
Vector4 operator *(right: Vector4) 🔗
Умножает каждый компонент Vector4 на int.
Vector4i operator *(right: Vector4i) 🔗
Умножает каждый компонент Vector4i на int.
float operator *(right: float) 🔗
Умножает float на int. Результат — float.
Умножает два int-а.
float operator **(right: float) 🔗
Возводит int в степень float. Результат — float.
print(2 ** 0.5) # Выводит 1.4142135623731
Возводит левое int в степень правого int.
print(3 ** 4) # Выводит 81
float operator +(right: float) 🔗
Складывает int и float. Результат — float.
Складывает два int-а.
float operator -(right: float) 🔗
Вычитает float из int. Результат — float.
Вычитает два int-а.
float operator /(right: float) 🔗
Делит int на float. Результат — float.
print(10 / 3.0) # Выводит 3.33333333333333
Делит два int-а. Результат — int. Это обрежет float, отбросив все после плавающей точки.
print(6 / 2) # Prints 3
print(5 / 3) # Prints 1
bool operator <(right: float) 🔗
Возвращает true, если int меньше, чем float.
Возвращает true, если левое int меньше правого int.
Выполняет операцию побитового сдвига влево. По сути то же самое, что и умножение на степень 2.
print(0b1010 << 1) # Печатает 20 (двоичное 10100)
print(0b1010 << 3) # Печатает 80 (двоичное 1010000)
bool operator <=(right: float) 🔗
Возвращает true, если int меньше или равно float.
bool operator <=(right: int) 🔗
Возвращает true, если левое int меньше или равно правому int.
bool operator ==(right: float) 🔗
Возвращает true, если int равно float.
bool operator ==(right: int) 🔗
Возвращает true, если два int-а равны.
bool operator >(right: float) 🔗
Возвращает true, если int больше, чем float.
Возвращает true, если левое int больше правого int.
bool operator >=(right: float) 🔗
Возвращает true, если int больше или равно float.
bool operator >=(right: int) 🔗
Возвращает true, если левое int больше или равно правому int.
Выполняет операцию побитового сдвига вправо. По сути то же самое, что деление на степень числа 2.
print(0b1010 >> 1) # Печатает 5 (двоичное 101)
print(0b1010 >> 2) # Печатает 2 (двоичное 10)
Выполняет побитовую операцию XOR.
print(0b1100 ^ 0b1010) # Печатает 6 (двоичное 110)
Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.
Возвращает отрицательное значение int. Если положительное, делает число отрицательным. Если отрицательное, делает число положительным. Если ноль, ничего не делает.
Выполняет побитовую операцию OR .
print(0b1100 | 0b1010) # Печатает 14 (двоичное 1110)
Это полезно для хранения двоичных флагов в переменной.
var flags = 0
flags |= 0b101 # Включите первый и третий биты.
Выполняет побитовую операцию NOT над int. Благодаря 2's complement она фактически равна -(int + 1).
print(~4) # Prints -5
print(~(-7)) # Prints 6