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