7adf4cc9b5
For the time being we don't support writing a description for those, preferring having all details in the method's description. Using self-closing tags saves half the lines, and prevents contributors from thinking that they should write the argument or return documentation there.
369 lines
12 KiB
XML
369 lines
12 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" />
|
|
<description>
|
|
Constructs a default-initialized [int] set to [code]0[/code].
|
|
</description>
|
|
</method>
|
|
<method name="int" qualifiers="constructor">
|
|
<return type="int" />
|
|
<argument index="0" name="from" type="int" />
|
|
<description>
|
|
Constructs an [int] as a copy of the given [int].
|
|
</description>
|
|
</method>
|
|
<method name="int" qualifiers="constructor">
|
|
<return type="int" />
|
|
<argument index="0" name="from" type="bool" />
|
|
<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" />
|
|
<argument index="0" name="from" type="float" />
|
|
<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" />
|
|
<argument index="0" name="right" type="float" />
|
|
<description>
|
|
Returns [code]true[/code] if operands are different from each other.
|
|
</description>
|
|
</method>
|
|
<method name="operator !=" qualifiers="operator">
|
|
<return type="bool" />
|
|
<argument index="0" name="right" type="int" />
|
|
<description>
|
|
Returns [code]true[/code] if operands are different from each other.
|
|
</description>
|
|
</method>
|
|
<method name="operator %" qualifiers="operator">
|
|
<return type="int" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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="int" />
|
|
<argument index="0" name="right" type="int" />
|
|
<description>
|
|
Multiplies two [int]s.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="float" />
|
|
<argument index="0" name="right" type="float" />
|
|
<description>
|
|
Multiplies an [int] and a [float]. The result is a [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Vector2" />
|
|
<argument index="0" name="right" type="Vector2" />
|
|
<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" />
|
|
<argument index="0" name="right" type="Vector2i" />
|
|
<description>
|
|
Multiplies each component of the integer vector by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Vector3" />
|
|
<argument index="0" name="right" type="Vector3" />
|
|
<description>
|
|
Multiplies each component of the vector by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Vector3i" />
|
|
<argument index="0" name="right" type="Vector3i" />
|
|
<description>
|
|
Multiplies each component of the integer vector by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Quaternion" />
|
|
<argument index="0" name="right" type="Quaternion" />
|
|
<description>
|
|
Multiplies each component of the quaternion by the given integer.
|
|
</description>
|
|
</method>
|
|
<method name="operator *" qualifiers="operator">
|
|
<return type="Color" />
|
|
<argument index="0" name="right" type="Color" />
|
|
<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="float" />
|
|
<argument index="0" name="right" type="float" />
|
|
<description>
|
|
Adds an [int] to a [float]. The result is a [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator +" qualifiers="operator">
|
|
<return type="int" />
|
|
<argument index="0" name="right" type="int" />
|
|
<description>
|
|
Adds two integers.
|
|
</description>
|
|
</method>
|
|
<method name="operator -" qualifiers="operator">
|
|
<return type="float" />
|
|
<argument index="0" name="right" type="float" />
|
|
<description>
|
|
Subtracts a [float] from an [int]. The result is a [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator -" qualifiers="operator">
|
|
<return type="int" />
|
|
<argument index="0" name="right" type="int" />
|
|
<description>
|
|
Subtracts two integers.
|
|
</description>
|
|
</method>
|
|
<method name="operator /" qualifiers="operator">
|
|
<return type="float" />
|
|
<argument index="0" name="right" type="float" />
|
|
<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" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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" />
|
|
<argument index="0" name="right" type="float" />
|
|
<description>
|
|
Returns [code]true[/code] if this [int] is less than the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator <" qualifiers="operator">
|
|
<return type="bool" />
|
|
<argument index="0" name="right" type="int" />
|
|
<description>
|
|
Returns [code]true[/code] the left integer is less than the right one.
|
|
</description>
|
|
</method>
|
|
<method name="operator <<" qualifiers="operator">
|
|
<return type="int" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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" />
|
|
<argument index="0" name="right" type="float" />
|
|
<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" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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" />
|
|
<argument index="0" name="right" type="float" />
|
|
<description>
|
|
Returns [code]true[/code] if the integer is equal to the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator ==" qualifiers="operator">
|
|
<return type="bool" />
|
|
<argument index="0" name="right" type="int" />
|
|
<description>
|
|
Returns [code]true[/code] if both integers are equal.
|
|
</description>
|
|
</method>
|
|
<method name="operator >" qualifiers="operator">
|
|
<return type="bool" />
|
|
<argument index="0" name="right" type="float" />
|
|
<description>
|
|
Returns [code]true[/code] if this [int] is greater than the given [float].
|
|
</description>
|
|
</method>
|
|
<method name="operator >" qualifiers="operator">
|
|
<return type="bool" />
|
|
<argument index="0" name="right" type="int" />
|
|
<description>
|
|
Returns [code]true[/code] the left integer is greater than the right one.
|
|
</description>
|
|
</method>
|
|
<method name="operator >=" qualifiers="operator">
|
|
<return type="bool" />
|
|
<argument index="0" name="right" type="float" />
|
|
<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" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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 unary+" qualifiers="operator">
|
|
<return type="int" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="operator unary-" qualifiers="operator">
|
|
<return type="int" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="operator |" qualifiers="operator">
|
|
<return type="int" />
|
|
<argument index="0" name="right" type="int" />
|
|
<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" />
|
|
<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>
|