Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

int

整数内置类型。

描述

带符号 64 位整数类型。这意味着它能够接受从 -2^632^63 - 1 的值,即从 -92233720368547758089223372036854775807。超出这个范围后,值会绕回到另一端。

int 可以在需要时自动转换为 float,例如在作为函数的参数传递的时候。float 会尽可能与原始整数接近。

类似地,float 可以自动转换为 int。这样会截断该 float,丢弃小数点之后的部分。

注意:布尔环境中会将等于 0int 评估为 false,其他值则为 true

var x: int = 1 # x 为 1
x = 4.2 # x 为 4,因为 4.2 发生了截断
var max_int = 9223372036854775807 # int 所能存储的最大值
max_int += 1 # max_int 现在是 -9223372036854775808,因为它绕到了另一端

你可以使用 0b 字面量书写二进制值,使用 0x 字面量书写十六进制值,使用 _ 符号分隔较长的数字,提升可读性。

var x = 0b1001 # x 为 9
var y = 0xF5 # y 为 245
var z = 10_000_000 # z 为 10000000

构造函数

int

int()

int

int(from: int)

int

int(from: String)

int

int(from: bool)

int

int(from: float)

运算符

bool

operator !=(right: float)

bool

operator !=(right: int)

int

operator %(right: int)

int

operator &(right: int)

Color

operator *(right: Color)

Quaternion

operator *(right: Quaternion)

Vector2

operator *(right: Vector2)

Vector2i

operator *(right: Vector2i)

Vector3

operator *(right: Vector3)

Vector3i

operator *(right: Vector3i)

Vector4

operator *(right: Vector4)

Vector4i

operator *(right: Vector4i)

float

operator *(right: float)

int

operator *(right: int)

float

operator **(right: float)

int

operator **(right: int)

float

operator +(right: float)

int

operator +(right: int)

float

operator -(right: float)

int

operator -(right: int)

float

operator /(right: float)

int

operator /(right: int)

bool

operator <(right: float)

bool

operator <(right: int)

int

operator <<(right: int)

bool

operator <=(right: float)

bool

operator <=(right: int)

bool

operator ==(right: float)

bool

operator ==(right: int)

bool

operator >(right: float)

bool

operator >(right: int)

bool

operator >=(right: float)

bool

operator >=(right: int)

int

operator >>(right: int)

int

operator ^(right: int)

int

operator unary+()

int

operator unary-()

int

operator |(right: int)

int

operator ~()


构造函数说明

int int() 🔗

构造设为 0int


int int(from: int)

构造给定 int 的副本 int


int int(from: String)

String 构造新的 int,遵循与 String.to_int 相同的规则。


int int(from: bool)

bool 构造新的 inttrue 会转换为 1false 会转换为 0


int int(from: float)

float 构造新的 int。这样会截断该 float,丢弃小数点之后的部分。


运算符说明

bool operator !=(right: float) 🔗

如果该 int 与该 float 不等价,则返回 true


bool operator !=(right: int) 🔗

如果 int 不相等,则返回 true


int operator %(right: int) 🔗

返回两个 int 相除后的余数。该操作使用截断除法,被除数为负数时会返回负数。如果不希望如此,请考虑使用 @GlobalScope.posmod

print(6 % 2) # 输出 0
print(11 % 4) # 输出 3
print(-5 % 3) # 输出 -2

int operator &(right: int) 🔗

执行按位 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 的每个分量乘以该 float

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 operator *(right: int) 🔗

将两个 int 相乘。


float operator **(right: float) 🔗

int 提升到 float 次幂。结果为 float

print(2 ** 0.5) # 输出 1.4142135623731

int operator **(right: int) 🔗

将左侧的 int 提升到右侧的 int 次幂。

print(3 ** 4) # 输出 81

float operator +(right: float) 🔗

将该 int 加上该 float。结果为 float


int operator +(right: int) 🔗

将两个 int 相加。


float operator -(right: float) 🔗

将该 int 减去该 float。结果为 float


int operator -(right: int) 🔗

将两个 int 相减。


float operator /(right: float) 🔗

将该 int 除以该 float。结果为 float

print(10 / 3.0) # 输出 3.33333333333333

int operator /(right: int) 🔗

将两个 int 相除。结果为 int。这样会截断该 float,丢弃小数点后的部分。

print(6 / 2) # 输出 3
print(5 / 3) # 输出 1

bool operator <(right: float) 🔗

如果该 int 小于该 float,则返回 true


bool operator <(right: int) 🔗

如果左侧的 int 小于右侧的 int,则返回 true


int operator <<(right: int) 🔗

执行按位左移操作。效果上与乘以 2 的幂相同。

print(0b1010 << 1) # 输出 20(二进制 10100)
print(0b1010 << 3) # 输出 80(二进制 1010000)

bool operator <=(right: float) 🔗

如果该 int 小于等于该 float,则返回 true


bool operator <=(right: int) 🔗

如果左侧的 int 小于等于右侧的 int,则返回 true


bool operator ==(right: float) 🔗

如果该 int 等于该 float,则返回 true


bool operator ==(right: int) 🔗

如果两个 int 相等,则返回 true


bool operator >(right: float) 🔗

如果该 int 大于该 float,则返回 true


bool operator >(right: int) 🔗

如果左侧的 int 大于右侧的 int,则返回 true


bool operator >=(right: float) 🔗

如果该 int 大于等于该 float,则返回 true


bool operator >=(right: int) 🔗

如果左侧的 int 大于等于右侧的 int,则返回 true


int operator >>(right: int) 🔗

执行按位右移操作。效果上与除以 2 的幂相同。

print(0b1010 >> 1) # 输出 5(二进制 101)
print(0b1010 >> 2) # 输出 2(二进制 10)

int operator ^(right: int) 🔗

执行按位 XOR(异或)运算。

print(0b1100 ^ 0b1010) # 输出 6(二进制 110)

int operator unary+() 🔗

返回与 + 不存在时相同的值。单目 + 没有作用,但有时可以使你的代码更具可读性。


int operator unary-() 🔗

返回该 int 的相反值。如果为正数,则该将数变为负数。如果为负数,则将该数变为正数。如果为零,则不执行任何操作。


int operator |(right: int) 🔗

执行按位 OR(或)运算。

print(0b1100 | 0b1010) # 输出 14(二进制 1110)

可用于在变量中存储二进制标记。

var flags = 0
flags |= 0b101 # 置第一和第三位。

int operator ~() 🔗

对该 int 执行按位 NOT(反)运算。由于补码,效果上与 -(int + 1) 相同。

print(~4) # 输出 -5
print(~(-7)) # 输出 6