int¶
整数的内置类型。
描述¶
有符号64位整数类型。这意味着它可以取从-2^63到2^63-1的值,即从-9223372036854775808到9223372036854775807。当它超过这些边界时,它将进行循环。
int可以在必要时自动转换为float,例如在函数中被作为参数传递时。float将尽可能接近原始整数。
同样,float可以自动转换为int。
注意:在布尔值上下文中,如果int等于0,则计算为false,否则计算为true。
var x: int = 1 # x is 1
x = 4.2 # x is 4, because 4.2 gets truncated
var max_int = 9223372036854775807 # 整数类型能存储的最大值
max_int += 1 # max_int is -9223372036854775808, because it wrapped around
int x = 1; // x is 1
x = (int)4.2; // x is 4, because 4.2 gets truncated
// 下方我们使用 long 类型,因为 S3Script 中的 int 是 64 位的,而 C# 中的 int 是 32 位的.
long maxLong = 9223372036854775807; // Biggest value a long can store
maxLong++; // maxLong 现在的值是 -9223372036854775808,因为发生了数值溢出.
// 或者使用 C# 的 32 位 int 类型,它的最大值更小.
int maxInt = 2147483647; // 整数类型能存储的最大值
maxInt++; // maxInt 现在的值是 -2147483648,因为发生了数值溢出
你可以使用 0b 前缀表示二进制数,使用 0x 前缀表示十六进制数,还可以使用 _ 符号分隔长数字以提高可读性
var x = 0b1001 # x is 9
var y = 0xF5 # y is 245
var z = 10_000_000 # z is 10000000
int x = 0b1001; // x is 9
int y = 0xF5; // y is 245
int z = 10_000_000; // z is 10000000
构造函数¶
运算符¶
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的副本。
从String构造一个新的int,遵循与String.to_int()相同的规则。
从bool构造一个新的int。true转换为1,false转换为0。
运算符说明¶
bool operator !=(right: float) 🔗
如果int不等同于float,则返回true。
bool operator !=(right: int) 🔗
如果ints不相等,则返回true。
返回两个int相除后的余数。使用截断除法,如果被除数为负数则返回负数。如果不希望这样,可以考虑使用@GlobalScope.posmod()。
print(6 % 2) # 输出 0
print(11 % 4) # 输出 3
print(-5 % 3) # 输出 -2
执行按位AND运算。
print(0b1100 & 0b1010) # 输出 8 (binary 1000)
这对于从变量中提取二进制标志位很有用.
var flags = 0b101
# 检查第一位或第二位是否已启用.
if flags & 0b011:
do_stuff() # This line will run.
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) 🔗
将两个int相乘。
float operator **(right: float) 🔗
计算int的float次幂。
print(2 ** 0.5) # 输出 1.4142135623731
计算左侧int的右侧int次幂。
print(3 ** 4) # Prints 81
float operator +(right: float) 🔗
添加两个ints。
float operator -(right: float) 🔗
减去两个ints。
float operator /(right: float) 🔗
print(10 / 3.0) # 输出 3.33333333333333
对两个int做除法。其结果为int。这将截断float,丢弃小数点后的所有数字。
print(6 / 2) # 输出 3
print(5 / 3) # 输出 1
bool operator <(right: float) 🔗
如果int小于float,则返回true。
如果左int小于右int,则返回true。
执行按位左移运算,实际上等于乘以2的幂。
print(0b1010 << 1) # 输出 20 (binary 10100)
print(0b1010 << 3) # 输出 80 (binary 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。
如果左int大于右int,则返回true。
bool operator >=(right: float) 🔗
如果int大于或等于float,则返回true。
bool operator >=(right: int) 🔗
如果左int大于或等于右int,则返回true。
执行按位右移运算,实际上等于除以2的幂。
print(0b1010 >> 1) # 输出 5 (binary 101)
print(0b1010 >> 2) # 输出 2 (binary 10)
执行按位XOR运算。
print(0b1100 ^ 0b1010) # 输出 6 (binary 110)
返回与+不存在相同的值。一元+什么也不做,但有时它可以使您的代码更具可读性。
返回int的负值。如果为正,则将数字变为负。如果为负,则将数字变为正。如果为零,则什么也不做。
执行按位OR运算。
print(0b1100 | 0b1010) # 输出 14 (binary 1110)
这对于在变量中存储二进制标志位很有用.
var flags = 0
flags |= 0b101 # Turn the first and third bits on.
对int执行按位NOT运算。由于2 的补码,它实际上等同于 -(int + 1)。
print(~4) # Prints -5
print(~(-7)) # Prints 6