int

整数内置类型。

描述

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

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

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

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

GDScriptC#

  1. var x: int = 1 # x 为 1
  2. x = 4.2 # x 为 4,因为 4.2 发生了截断
  3. var max_int = 9223372036854775807 # int 所能存储的最大值
  4. max_int += 1 # max_int 现在是 -9223372036854775808,因为它绕到了另一端
  1. int x = 1; // x 为 1
  2. x = (int)4.2; // x 为 4,因为 4.2 发生了截断
  3. // 下面使用 long,因为 GDScript 的 int 为 64 位,而 C# 的 int 为 32 位。
  4. long maxLong = 9223372036854775807; // long 所能存储的最大值
  5. maxLong++; // maxLong 现在是 -9223372036854775808,因为它绕到了另一端。
  6. // 也可以使用 C# 的 32 位 int 类型,最大值较小。
  7. int maxInt = 2147483647; // int 所能存储的最大值
  8. maxInt++; // maxInt 现在是 -2147483648,因为它绕到了另一端。

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

GDScriptC#

  1. var x = 0b1001 # x 为 9
  2. var y = 0xF5 # y 为 245
  3. var z = 10_000_000 # z 为 10000000
  1. int x = 0b1001; // x 为 9
  2. int y = 0xF5; // y 为 245
  3. int 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

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

int operator &(right: int) 🔗

执行按位 AND 运算。

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

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

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

Color operator *(right: Color) 🔗

Color 的每个分量乘以该 int


Quaternion operator *(right: Quaternion) 🔗

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


Vector2 operator *(right: Vector2) 🔗

Vector2 的每个分量乘以该 float

  1. 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

  1. print(2 ** 0.5) # 输出 1.4142135623731

int operator **(right: int) 🔗

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

  1. 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

  1. print(10 / 3.0) # 输出 3.33333333333333

int operator /(right: int) 🔗

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

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

bool operator <(right: float) 🔗

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


bool operator <(right: int) 🔗

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


int operator <<(right: int) 🔗

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

  1. print(0b1010 << 1) # 输出 20(二进制 10100)
  2. 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 的幂相同。

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

int operator ^(right: int) 🔗

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

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

int operator unary+() 🔗

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


int operator unary-() 🔗

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


int operator |(right: int) 🔗

执行按位 OR(或)运算。

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

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

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

int operator ~() 🔗

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

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