int
整数内置类型。
描述
带符号 64 位整数类型。这意味着它能够接受从 -2^63
到 2^63 - 1
的值,即从 -9223372036854775808
到 9223372036854775807
。超出这个范围后,值会绕回到另一端。
int 可以在需要时自动转换为 float,例如在作为函数的参数传递的时候。float 会尽可能与原始整数接近。
类似地,float 可以自动转换为 int。这样会截断该 float,丢弃小数点之后的部分。
注意:布尔环境中会将等于 0
的 int 评估为 false
,其他值则为 true
。
GDScriptC#
var x: int = 1 # x 为 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,因为 GDScript 的 int 为 64 位,而 C# 的 int 为 32 位。
long maxLong = 9223372036854775807; // long 所能存储的最大值
maxLong++; // maxLong 现在是 -9223372036854775808,因为它绕到了另一端。
// 也可以使用 C# 的 32 位 int 类型,最大值较小。
int maxInt = 2147483647; // int 所能存储的最大值
maxInt++; // maxInt 现在是 -2147483648,因为它绕到了另一端。
你可以使用 0b
字面量书写二进制值,使用 0x
字面量书写十六进制值,使用 _
符号分隔较长的数字,提升可读性。
GDScriptC#
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 != ( float right ) | |
operator != ( int right ) | |
operator % ( int right ) | |
operator & ( int right ) | |
operator ( Quaternion right ) | |
operator + ( float right ) | |
operator + ( int right ) | |
operator - ( float right ) | |
operator - ( int right ) | |
operator / ( float right ) | |
operator / ( int right ) | |
operator < ( float right ) | |
operator < ( int right ) | |
operator << ( int right ) | |
operator <= ( float right ) | |
operator <= ( int right ) | |
operator == ( float right ) | |
operator == ( int right ) | |
operator > ( float right ) | |
operator > ( int right ) | |
operator >= ( float right ) | |
operator >= ( int right ) | |
operator >> ( int right ) | |
operator ^ ( int right ) | |
operator unary+ ( ) | |
operator unary- ( ) | |
operator | ( int right ) | |
operator ~ ( ) |
构造函数说明
int int ( )
构造设为 0
的 int。
构造给定 int 的副本 int。
从 String 构造新的 int,遵循与 String.to_int 相同的规则。
从 bool 构造新的 int。true
会转换为 1
,false
会转换为 0
。
从 float 构造新的 int。这样会截断该 float,丢弃小数点之后的部分。
操作符说明
bool operator != ( float right )
如果该 int 与该 float 不等价,则返回 true
。
bool operator != ( int right )
如果 int 不相等,则返回 true
。
返回两个 int 相除后的余数。该操作使用截断除法,被除数为负数时会返回负数。如果不希望如此,请考虑使用 @GlobalScope.posmod。
print(6 % 2) # 输出 0
print(11 % 4) # 输出 3
print(-5 % 3) # 输出 -2
执行按位 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 )
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 )
将两个 int 相乘。
float operator ** ( float right )
print(2 ** 0.5) # 输出 1.4142135623731
将左侧的 int 提升到右侧的 int 次幂。
print(3 ** 4) # 输出 81
float operator + ( float right )
将两个 int 相加。
float operator - ( float right )
将两个 int 相减。
float operator / ( float right )
print(10 / 3.0) # 输出 3.33333333333333
将两个 int 相除。结果为 int。这样会截断该 float,丢弃小数点后的部分。
print(6 / 2) # 输出 3
print(5 / 3) # 输出 1
bool operator < ( float right )
如果该 int 小于该 float,则返回 true
。
如果左侧的 int 小于右侧的 int,则返回 true
。
执行按位左移操作。效果上与乘以 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
。
如果左侧的 int 大于右侧的 int,则返回 true
。
bool operator >= ( float right )
如果该 int 大于等于该 float,则返回 true
。
bool operator >= ( int right )
如果左侧的 int 大于等于右侧的 int,则返回 true
。
执行按位右移操作。效果上与除以 2 的幂相同。
print(0b1010 >> 1) # 输出 5(二进制 101)
print(0b1010 >> 2) # 输出 2(二进制 10)
执行按位 XOR
(异或)运算。
print(0b1100 ^ 0b1010) # 输出 6(二进制 110)
int operator unary+ ( )
返回与 +
不存在时相同的值。单目 +
没有作用,但有时可以使你的代码更具可读性。
int operator unary- ( )
返回该 int 的相反值。如果为正数,则该将数变为负数。如果为负数,则将该数变为正数。如果为零,则不执行任何操作。
执行按位 OR
(或)运算。
print(0b1100 | 0b1010) # 输出 14(二进制 1110)
可用于在变量中存储二进制标记。
var flags = 0
flags |= 0b101 # 置第一和第三位。
int operator ~ ( )
对该 int 执行按位 NOT
(反)运算。由于补码,效果上与 -(int + 1)
相同。
print(~4) # 输出 -5
print(~(-7)) # 输出 6
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.