452 lines
14 KiB
XML
452 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="int" version="4.0">
|
|
<brief_description>
|
|
Integer built-in type.
|
|
</brief_description>
|
|
<description>
|
|
Signed 64-bit integer type.
|
|
It can take values in the interval [code][-2^63, 2^63 - 1][/code], i.e. [code][-9223372036854775808, 9223372036854775807][/code]. Exceeding those bounds will wrap around.
|
|
[int] is a [Variant] type, and will thus be used when assigning an integer value to a [Variant]. It can also be enforced with the [code]: int[/code] type hint.
|
|
[codeblocks]
|
|
[gdscript]
|
|
var my_variant = 0 # int, value 0.
|
|
my_variant += 4.2 # float, value 4.2.
|
|
var my_int: int = 1 # int, value 1.
|
|
my_int = 4.2 # int, value 4, the right value is implicitly cast to int.
|
|
my_int = int("6.7") # int, value 6, the String is explicitly cast with int.
|
|
var max_int = 9223372036854775807
|
|
print(max_int) # 9223372036854775807, OK.
|
|
max_int += 1
|
|
print(max_int) # -9223372036854775808, we overflowed and wrapped around.
|
|
[/gdscript]
|
|
[csharp]
|
|
int myInt = (int)"6.7".ToFloat(); // int, value 6, the String is explicitly cast with int.
|
|
// We have to use `long` here, because GDSript's `int`
|
|
// is 64 bits long while C#'s `int` is only 32 bits.
|
|
long maxInt = 9223372036854775807;
|
|
GD.Print(maxInt); // 9223372036854775807, OK.
|
|
maxInt++;
|
|
GD.Print(maxInt); // -9223372036854775808, we overflowed and wrapped around.
|
|
|
|
// Alternatively, if we used C#'s 32-bit `int` type, the maximum value is much smaller:
|
|
int halfInt = 2147483647;
|
|
GD.Print(halfInt); // 2147483647, OK.
|
|
halfInt++;
|
|
GD.Print(halfInt); // -2147483648, we overflowed and wrapped around.
|
|
[/csharp]
|
|
[/codeblocks]
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="int" qualifiers="constructor">
|
|
<return type="int">
|
|
</return>
|
|
<description>
|
|
Constructs a default-initialized [int] set to [code]0[/code].
|
|
</description>
|
|
</method>
|
|
<method name="int" qualifiers="constructor">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="from" type="int">
|
|
</argument>
|
|
<description>
|
|
Constructs an [int] as a copy of the given [int].
|
|
</description>
|
|
</method>
|
|
<method name="int" qualifiers="constructor">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="from" type="bool">
|
|
</argument>
|
|
<description>
|
|
Cast a [bool] value to an integer value, [code]int(true)[/code] will be equals to 1 and [code]int(false)[/code] will be equals to 0.
|
|
</description>
|
|
</method>
|
|
<method name="int" qualifiers="constructor">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="from" type="float">
|
|
</argument>
|
|
<description>
|
|
Cast a float value to an integer value, this method simply removes the number fractions (i.e. rounds [code]from[/code] towards zero), so for example [code]int(2.7)[/code] will be equals to 2, [code]int(0.1)[/code] will be equals to 0 and [code]int(-2.7)[/code] will be equals to -2. This operation is also called truncation.
|
|
</description>
|
|
</method>
|
|
<method name="operator !=" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if operands are different from each other.
|
|
</description>
|
|
</method>
|
|
<method name="operator !=" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if operands are different from each other.
|
|
</description>
|
|
</method>
|
|
<method name="operator %" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns the result of the modulo operator for two integers, i.e. the remainder after dividing both numbers.
|
|
[codeblock]
|
|
print(5 % 2) # 1
|
|
print(12 % 4) # 0
|
|
print(12 % 2) # 2
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator &" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns the result of bitwise [code]AND[/code] operation for two integers.
|
|
[codeblock]
|
|
print(3 & 1) # 1
|
|
print(11 & 3) # 3
|
|
[/codeblock]
|
|
It's useful to retrieve binary flags from a variable.
|
|
[codeblock]
|
|
var flags = 5
|
|
# Do something if the first bit is enabled.
|
|
if flags & 1:
|
|
do_stuff()
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="float">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Multiplies an [int] and a [float]. The result is a [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Multiplies two [int]s.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Vector2">
|
|
</return>
|
|
<argument index="0" name="right" type="Vector2">
|
|
</argument>
|
|
<description>
|
|
Multiplies each component of the vector by the given integer.
|
|
[codeblock]
|
|
print(2 * Vector2(1, 1)) # Vector2(2, 2)
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Vector2i">
|
|
</return>
|
|
<argument index="0" name="right" type="Vector2i">
|
|
</argument>
|
|
<description>
|
|
Multiplies each component of the integer vector by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Vector3">
|
|
</return>
|
|
<argument index="0" name="right" type="Vector3">
|
|
</argument>
|
|
<description>
|
|
Multiplies each component of the vector by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Vector3i">
|
|
</return>
|
|
<argument index="0" name="right" type="Vector3i">
|
|
</argument>
|
|
<description>
|
|
Multiplies each component of the integer vector by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Quaternion">
|
|
</return>
|
|
<argument index="0" name="right" type="Quaternion">
|
|
</argument>
|
|
<description>
|
|
Multiplies each component of the quaternion by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Color">
|
|
</return>
|
|
<argument index="0" name="right" type="Color">
|
|
</argument>
|
|
<description>
|
|
Multiplies each component of the color by the given integer.
|
|
[codeblock]
|
|
print(2 * Color(0.5, 0.5, 0.5)) # Color(1, 1, 1)
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator +" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<description>
|
|
Unary plus operator. Doesn't have any effect.
|
|
[codeblock]
|
|
var a = +1 # a is 1.
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator +" qualifiers="operator">
|
|
<return type="float">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Adds an [int] to a [float]. The result is a [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator +" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Adds two integers.
|
|
</description>
|
|
</method>
|
|
<method name="operator -" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<description>
|
|
Unary minus operator. Negates the number.
|
|
[codeblock]
|
|
var a = -1 # a is -1.
|
|
print(-a) # 1
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator -" qualifiers="operator">
|
|
<return type="float">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Subtracts a [float] from an [int]. The result is a [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator -" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Subtracts two integers.
|
|
</description>
|
|
</method>
|
|
<method name="operator /" qualifiers="operator">
|
|
<return type="float">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Divides an [int] by a [float]. The result is a [float].
|
|
[codeblock]
|
|
print(10 / 3.0) # 3.333...
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator /" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Divides two integers. The decimal part of the result is discarded (truncated).
|
|
[codeblock]
|
|
print(10 / 2) # 5
|
|
print(10 / 3) # 3
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator <" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if this [int] is less than the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator <" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] the left integer is less than the right one.
|
|
</description>
|
|
</method>
|
|
<method name="operator <<" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Performs bitwise shift left operation on the integer. Effectively the same as multiplying by a power of 2.
|
|
[codeblock]
|
|
print(10 << 1) # 20
|
|
print(10 << 4) # 160
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator <=" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if this [int] is less than or equal to the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator <=" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] the left integer is less than or equal to the right one.
|
|
</description>
|
|
</method>
|
|
<method name="operator ==" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if the integer is equal to the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator ==" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if both integers are equal.
|
|
</description>
|
|
</method>
|
|
<method name="operator >" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if this [int] is greater than the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator >" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] the left integer is greater than the right one.
|
|
</description>
|
|
</method>
|
|
<method name="operator >=" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="float">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] if this [int] is greater than or equal to the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator >=" qualifiers="operator">
|
|
<return type="bool">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns [code]true[/code] the left integer is greater than or equal to the right one.
|
|
</description>
|
|
</method>
|
|
<method name="operator >>" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Performs bitwise shift right operation on the integer. Effectively the same as dividing by a power of 2.
|
|
[codeblock]
|
|
print(10 >> 1) # 5
|
|
print(10 >> 2) # 2
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator ^" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns the result of bitwise [code]XOR[/code] operation for two integers.
|
|
[codeblock]
|
|
print(5 ^ 1) # 4
|
|
print(4 ^ 7) # 3
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator |" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="right" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns the result of bitwise [code]OR[/code] operation for two integers.
|
|
[codeblock]
|
|
print(2 | 4) # 6
|
|
print(1 | 3) # 3
|
|
[/codeblock]
|
|
It's useful to store binary flags in a variable.
|
|
[codeblock]
|
|
var flags = 0
|
|
# Turn first and third bit on.
|
|
flags |= 1
|
|
flags |= 4
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="operator ~" qualifiers="operator">
|
|
<return type="int">
|
|
</return>
|
|
<description>
|
|
Returns the result of bitwise [code]NOT[/code] operation for the integer. It's effectively equal to [code]-int + 1[/code].
|
|
[codeblock]
|
|
print(~4) # -3
|
|
print(~7) # -6
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<constants>
|
|
</constants>
|
|
</class>
|