int
A built-in type for integers.
描述
Signed 64-bit integer type. This means that it can take values from -2^63
to 2^63 - 1
, i.e. from -9223372036854775808
to 9223372036854775807
. When it exceeds these bounds, it will wrap around.
int s can be automatically converted to float
s when necessary, for example when passing them as arguments in functions. The float
will be as close to the original integer as possible.
Likewise, float
s can be automatically converted into int s. This will truncate the float
, discarding anything after the floating-point.
Note: In a boolean context, an int will evaluate to false
if it equals 0
, and to true
otherwise.
var x: int = 1 # x is 1
x = 4.2 # x is 4, because 4.2 gets truncated
var max_int = 9223372036854775807 # Biggest value an int can store
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
// We use long below, because GDScript's int is 64-bit while C#'s int is 32-bit.
long maxLong = 9223372036854775807; // Biggest value a long can store
maxLong++; // maxLong is now -9223372036854775808, because it wrapped around.
// Alternatively with C#'s 32-bit int type, which has a smaller maximum value.
int maxInt = 2147483647; // Biggest value an int can store
maxInt++; // maxInt is now -2147483648, because it wrapped around
You can use the 0b
literal for binary representation, the 0x
literal for hexadecimal representation, and the _
symbol to separate long numbers and improve readability.
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
构造函数
int | int ( ) |
int | int ( from: int ) |
int | int ( from: String ) |
int | int ( from: bool ) |
int | int ( from: float ) |
运算符
构造函数说明
int
int ( )
Constructs an int set to 0
.
Constructs an int as a copy of the given int.
Constructs a new int from a String
, following the same rules as String.to_int
.
Constructs a new int from a bool
. true
is converted to 1
and false
is converted to 0
.
Constructs a new int from a float
. This will truncate the float
, discarding anything after the floating point.
运算符说明
bool
operator != ( right: float
)
Returns true
if the int is not equivalent to the float
.
bool
operator != ( right: int
)
Returns true
if the int s are not equal.
Returns the remainder after dividing two int s. Uses truncated division, which returns a negative number if the dividend is negative. If this is not desired, consider using @GlobalScope.posmod
.
print(6 % 2) # Prints 0
print(11 % 4) # Prints 3
print(-5 % 3) # Prints -2
Performs the bitwise AND
operation.
print(0b1100 & 0b1010) # Prints 8 (binary 1000)
This is useful for retrieving binary flags from a variable.
var flags = 0b101
# Check if the first or second bit are enabled.
if flags & 0b011:
do_stuff() # This line will run.
Color
**operator *** ( right: Color
)
Multiplies each component of the Color
by the int.
Quaternion
**operator *** ( right: Quaternion
)
Multiplies each component of the Quaternion
by the int. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
Vector2
**operator *** ( right: Vector2
)
Multiplies each component of the Vector2
by the int.
print(2 * Vector2(1, 4)) # Prints (2, 8)
Vector2i
**operator *** ( right: Vector2i
)
Multiplies each component of the Vector2i
by the int.
Vector3
**operator *** ( right: Vector3
)
Multiplies each component of the Vector3
by the int.
Vector3i
**operator *** ( right: Vector3i
)
Multiplies each component of the Vector3i
by the int.
Vector4
**operator *** ( right: Vector4
)
Multiplies each component of the Vector4
by the int.
Vector4i
**operator *** ( right: Vector4i
)
Multiplies each component of the Vector4i
by the int.
float
**operator *** ( right: float
)
Multiplies the float
by the int. The result is a float
.
int
**operator *** ( right: int
)
Multiplies the two int s.
float
**operator **** ( right: float
)
Raises an int to a power of a float
. The result is a float
.
print(2 ** 0.5) # Prints 1.4142135623731
int
**operator **** ( right: int
)
Raises the left int to a power of the right int.
print(3 ** 4) # Prints 81
float
operator + ( right: float
)
Adds the int and the float
. The result is a float
.
Adds the two int s.
float
operator - ( right: float
)
Subtracts the float
from the int. The result is a float
.
Subtracts the two int s.
float
operator / ( right: float
)
Divides the int by the float
. The result is a float
.
print(10 / 3.0) # Prints 3.33333333333333
Divides the two int s. The result is an int. This will truncate the float
, discarding anything after the floating point.
print(6 / 2) # Prints 3
print(5 / 3) # Prints 1
bool
operator < ( right: float
)
Returns true
if the int is less than the float
.
bool
operator < ( right: int
)
Returns true
if the left int is less than the right int.
int
operator << ( right: int
)
Performs the bitwise shift left operation. Effectively the same as multiplying by a power of 2.
print(0b1010 << 1) # Prints 20 (binary 10100)
print(0b1010 << 3) # Prints 80 (binary 1010000)
bool
operator <= ( right: float
)
Returns true
if the int is less than or equal to the float
.
bool
operator <= ( right: int
)
Returns true
if the left int is less than or equal to the right int.
bool
operator == ( right: float
)
Returns true
if the int is equal to the float
.
bool
operator == ( right: int
)
Returns true
if the two int s are equal.
bool
operator > ( right: float
)
Returns true
if the int is greater than the float
.
bool
operator > ( right: int
)
Returns true
if the left int is greater than the right int.
bool
operator >= ( right: float
)
Returns true
if the int is greater than or equal to the float
.
bool
operator >= ( right: int
)
Returns true
if the left int is greater than or equal to the right int.
int
operator >> ( right: int
)
Performs the bitwise shift right operation. Effectively the same as dividing by a power of 2.
print(0b1010 >> 1) # Prints 5 (binary 101)
print(0b1010 >> 2) # Prints 2 (binary 10)
Performs the bitwise XOR
operation.
print(0b1100 ^ 0b1010) # Prints 6 (binary 110)
int
operator unary+ ( )
Returns the same value as if the +
was not there. Unary +
does nothing, but sometimes it can make your code more readable.
int
operator unary- ( )
Returns the negated value of the int. If positive, turns the number negative. If negative, turns the number positive. If zero, does nothing.
Performs the bitwise OR
operation.
print(0b1100 | 0b1010) # Prints 14 (binary 1110)
This is useful for storing binary flags in a variable.
var flags = 0
flags |= 0b101 # Turn the first and third bits on.
int
operator ~ ( )
Performs the bitwise NOT
operation on the int. Due to 2's complement, it's effectively equal to -(int + 1)
.
print(~4) # Prints -5
print(~(-7)) # Prints 6
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。