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
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。