diff options
Diffstat (limited to 'doc/classes/int.xml')
-rw-r--r-- | doc/classes/int.xml | 354 |
1 files changed, 334 insertions, 20 deletions
diff --git a/doc/classes/int.xml b/doc/classes/int.xml index 2c9f0ad371..32b5fe1012 100644 --- a/doc/classes/int.xml +++ b/doc/classes/int.xml @@ -7,47 +7,361 @@ 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. - [codeblock] + [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. - [/codeblock] + [/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"> - <return type="int"> - </return> - <argument index="0" name="from" type="bool"> - </argument> + <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"> - <return type="int"> - </return> - <argument index="0" name="from" type="float"> - </argument> + <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> + 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> + </method> + <method name="operator unary-" qualifiers="operator"> + <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> + </method> + <method name="operator |" qualifiers="operator"> + <return type="int" /> + <argument index="0" name="right" type="int" /> <description> - Cast a float value to an integer value, this method simply removes the number fractions, so for example [code]int(2.7)[/code] will be equals to 2, [code]int(.1)[/code] will be equals to 0 and [code]int(-2.7)[/code] will be equals to -2. + 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="int"> - <return type="int"> - </return> - <argument index="0" name="from" type="String"> - </argument> + <method name="operator ~" qualifiers="operator"> + <return type="int" /> <description> - Cast a [String] value to an integer value, this method is an integer parser from a string, so calling this method with an invalid integer string will return 0, a valid string will be something like [code]'1.7'[/code]. This method will ignore all non-number characters, so calling [code]int('1e3')[/code] will return 13. + 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> |