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 ( int from )

int

int ( String from )

int

int ( bool from )

int

int ( float from )

操作符

bool

operator != ( float right )

bool

operator != ( int right )

int

operator % ( int right )

int

operator & ( int right )

Color

operator * ( Color right )

Quaternion

operator * ( Quaternion right )

Vector2

operator * ( Vector2 right )

Vector2i

operator * ( Vector2i right )

Vector3

operator * ( Vector3 right )

Vector3i

operator * ( Vector3i right )

Vector4

operator * ( Vector4 right )

Vector4i

operator * ( Vector4i right )

float

operator * ( float right )

int

operator * ( int right )

float

operator ** ( float right )

int

operator ** ( int right )

float

operator + ( float right )

int

operator + ( int right )

float

operator - ( float right )

int

operator - ( int right )

float

operator / ( float right )

int

operator / ( int right )

bool

operator < ( float right )

bool

operator < ( int right )

int

operator << ( int right )

bool

operator <= ( float right )

bool

operator <= ( int right )

bool

operator == ( float right )

bool

operator == ( int right )

bool

operator > ( float right )

bool

operator > ( int right )

bool

operator >= ( float right )

bool

operator >= ( int right )

int

operator >> ( int right )

int

operator ^ ( int right )

int

operator unary+ ( )

int

operator unary- ( )

int

operator | ( int right )

int

operator ~ ( )


构造函数说明

int int ( )

构造设为 0int


int int ( int from )

构造给定 int 的副本 int


int int ( String from )

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


int int ( bool from )

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


int int ( float from )

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


操作符说明

bool operator != ( float right )

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


bool operator != ( int right )

如果 int 不相等,则返回 true


int operator % ( int right )

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

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

int operator & ( int right )

执行按位 AND 运算。

print(0b1100 & 0b1010) # 输出 8(二进制 1000)

可用于从变量中检索二进制标志。

var flags = 0b101
# 检查是否启用了第一或第二个比特位。
if flags & 0b011:
    do_stuff() # 会执行这一行。

Color operator * ( Color right )

Color 的每个分量乘以该 int


Quaternion operator * ( Quaternion right )

Quaternion 的每个分量乘以该 int。此操作本身没有意义,但可以用作更大表达式的一部分。


Vector2 operator * ( Vector2 right )

Vector2 的每个分量乘以该 float

print(2 * Vector2(1, 4)) # 输出 (2, 8)

Vector2i operator * ( Vector2i right )

Vector2i 的每个分量乘以该 int


Vector3 operator * ( Vector3 right )

Vector3 的每个分量乘以该 int


Vector3i operator * ( Vector3i right )

Vector3i 的每个分量乘以该 int


Vector4 operator * ( Vector4 right )

Vector4 的每个分量乘以该 int


Vector4i operator * ( Vector4i right )

Vector4i 的每个分量乘以该 int


float operator * ( float right )

float 和该 int 相乘。结果为 float


int operator * ( int right )

将两个 int 相乘。


float operator ** ( float right )

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

print(2 ** 0.5) # 输出 1.4142135623731

int operator ** ( int right )

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

print(3 ** 4) # 输出 81

float operator + ( float right )

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


int operator + ( int right )

将两个 int 相加。


float operator - ( float right )

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


int operator - ( int right )

将两个 int 相减。


float operator / ( float right )

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

print(10 / 3.0) # 输出 3.33333333333333

int operator / ( int right )

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

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

bool operator < ( float right )

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


bool operator < ( int right )

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


int operator << ( int right )

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

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

bool operator <= ( float right )

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


bool operator <= ( int right )

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


bool operator == ( float right )

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


bool operator == ( int right )

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


bool operator > ( float right )

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


bool operator > ( int right )

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


bool operator >= ( float right )

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


bool operator >= ( int right )

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


int operator >> ( int right )

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

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

int operator ^ ( int right )

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

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

int operator unary+ ( )

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


int operator unary- ( )

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


int operator | ( int right )

执行按位 OR(或)运算。

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

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

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

int operator ~ ( )

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

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