int

整数的内置类型。

描述

有符号64位整数类型。这意味着它可以取从-2^632^63-1的值,即从-92233720368547758089223372036854775807。当它超过这些边界时,它将进行循环。

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

你可以使用 0b 前缀表示二进制数,使用 0x 前缀表示十六进制数,还可以使用 _ 符号分隔长数字以提高可读性

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

构造函数

int

int()

int

int(from: int)

int

int(from: String)

int

int(from: bool)

int

int(from: float)

运算符


构造函数说明

int int() 🔗

构造一个int设置为0


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) 🔗

如果ints不相等,则返回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 (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) 🔗

float乘以int。结果是一个float


int operator *(right: int) 🔗

将两个int相乘。


float operator **(right: float) 🔗

计算intfloat次幂。

print(2 ** 0.5) # 输出 1.4142135623731

int operator **(right: int) 🔗

计算左侧int的右侧int次幂。

print(3 ** 4) # Prints 81

float operator +(right: float) 🔗

添加intfloat。结果是一个float


int operator +(right: int) 🔗

添加两个ints。


float operator -(right: float) 🔗

int中减去float。结果是一个float


int operator -(right: int) 🔗

减去两个ints。


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 (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


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 (binary 101)
print(0b1010 >> 2) # 输出 2 (binary 10)

int operator ^(right: int) 🔗

执行按位XOR运算。

print(0b1100 ^ 0b1010) # 输出 6 (binary 110)

int operator unary+() 🔗

返回与+不存在相同的值。一元+什么也不做,但有时它可以使您的代码更具可读性。


int operator unary-() 🔗

返回int的负值。如果为正,则将数字变为负。如果为负,则将数字变为正。如果为零,则什么也不做。


int operator |(right: int) 🔗

执行按位OR运算。

print(0b1100 | 0b1010) # 输出 14 (binary 1110)

这对于在变量中存储二进制标志位很有用.

var flags = 0
flags |= 0b101 # Turn the first and third bits on.

int operator ~() 🔗

int执行按位NOT运算。由于2 的补码,它实际上等同于 -(int + 1)

print(~4) # Prints -5
print(~(-7)) # Prints 6