| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- <?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>
- <constructors>
- <constructor name="int">
- <return type="int" />
- <description>
- Constructs a default-initialized [int] set to [code]0[/code].
- </description>
- </constructor>
- <constructor name="int">
- <return type="int" />
- <argument index="0" name="from" type="int" />
- <description>
- Constructs an [int] as a copy of the given [int].
- </description>
- </constructor>
- <constructor name="int">
- <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>
- </constructor>
- <constructor name="int">
- <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>
- </constructor>
- </constructors>
- <operators>
- <operator name="operator !=">
- <return type="bool" />
- <description>
- </description>
- </operator>
- <operator name="operator !=">
- <return type="bool" />
- <argument index="0" name="right" type="float" />
- <description>
- Returns [code]true[/code] if operands are different from each other.
- </description>
- </operator>
- <operator name="operator !=">
- <return type="bool" />
- <argument index="0" name="right" type="int" />
- <description>
- Returns [code]true[/code] if operands are different from each other.
- </description>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="operator *">
- <return type="Color" />
- <argument index="0" name="right" type="Color" />
- <description>
- </description>
- </operator>
- <operator name="operator *">
- <return type="Quaternion" />
- <argument index="0" name="right" type="Quaternion" />
- <description>
- </description>
- </operator>
- <operator name="operator *">
- <return type="int" />
- <argument index="0" name="right" type="int" />
- <description>
- Multiplies two [int]s.
- </description>
- </operator>
- <operator name="operator *">
- <return type="float" />
- <argument index="0" name="right" type="float" />
- <description>
- Multiplies an [int] and a [float]. The result is a [float].
- </description>
- </operator>
- <operator name="operator *">
- <return type="Vector2" />
- <argument index="0" name="right" type="Vector2" />
- <description>
- Multiplies each component of the [Vector2] by the given [int].
- [codeblock]
- print(2 * Vector2(1, 1)) # Vector2(2, 2)
- [/codeblock]
- </description>
- </operator>
- <operator name="operator *">
- <return type="Vector2i" />
- <argument index="0" name="right" type="Vector2i" />
- <description>
- Multiplies each component of the [Vector2i] by the given [int].
- </description>
- </operator>
- <operator name="operator *">
- <return type="Vector3" />
- <argument index="0" name="right" type="Vector3" />
- <description>
- Multiplies each component of the [Vector3] by the given [int].
- </description>
- </operator>
- <operator name="operator *">
- <return type="Vector3i" />
- <argument index="0" name="right" type="Vector3i" />
- <description>
- Multiplies each component of the [Vector3i] by the given [int].
- </description>
- </operator>
- <operator name="operator +">
- <return type="float" />
- <argument index="0" name="right" type="float" />
- <description>
- Adds an [int] and a [float]. The result is a [float].
- </description>
- </operator>
- <operator name="operator +">
- <return type="int" />
- <argument index="0" name="right" type="int" />
- <description>
- Adds two integers.
- </description>
- </operator>
- <operator name="operator -">
- <return type="float" />
- <argument index="0" name="right" type="float" />
- <description>
- Subtracts a [float] from an [int]. The result is a [float].
- </description>
- </operator>
- <operator name="operator -">
- <return type="int" />
- <argument index="0" name="right" type="int" />
- <description>
- Subtracts two integers.
- </description>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="operator ==">
- <return type="bool" />
- <description>
- </description>
- </operator>
- <operator name="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>
- </operator>
- <operator name="operator ==">
- <return type="bool" />
- <argument index="0" name="right" type="int" />
- <description>
- Returns [code]true[/code] if both integers are equal.
- </description>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- <operator name="operator unary+">
- <return type="int" />
- <description>
- Returns the same value as if the [code]+[/code] was not there. Unary [code]+[/code] does nothing, but sometimes it can make your code more readable.
- </description>
- </operator>
- <operator name="operator unary-">
- <return type="int" />
- <description>
- Returns the negated value of the [int]. If positive, turns the number negative. If negative, turns the number positive. If zero, does nothing.
- </description>
- </operator>
- <operator name="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>
- </operator>
- <operator name="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>
- </operator>
- </operators>
- </class>
|