Files
godot-docs-l10n/classes/zh_Hans/class_int.rst

783 lines
30 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_int:
int
===
整数内置类型。
.. rst-class:: classref-introduction-group
描述
----
带符号 64 位整数类型。这意味着它能够接受从 ``-2^63````2^63 - 1`` 的值,即从 ``-9223372036854775808````9223372036854775807``\ 。超出这个范围后,值会绕回到另一端。
\ **int** 可以在需要时自动转换为 :ref:`float<class_float>`\ ,例如在作为函数的参数传递的时候。\ :ref:`float<class_float>` 会尽可能与原始整数接近。
类似地,\ :ref:`float<class_float>` 可以自动转换为 **int**\ 。这样会截断该 :ref:`float<class_float>`\ ,丢弃小数点之后的部分。
\ **注意:**\ 布尔环境中会将等于 ``0``**int** 评估为 ``false``\ ,其他值则为 ``true``\ 。
.. tabs::
.. code-tab:: gdscript
var x: int = 1 # x 为 1
x = 4.2 # x 为 4因为 4.2 发生了截断
var max_int = 9223372036854775807 # int 所能存储的最大值
max_int += 1 # max_int 现在是 -9223372036854775808因为它绕到了另一端
.. code-tab:: csharp
int x = 1; // x 为 1
x = (int)4.2; // x 为 4因为 4.2 发生了截断
// 下面使用 long因为 GDScript 的 int 为 64 位,而 C# 的 int 为 32 位。
long maxLong = 9223372036854775807; // long 所能存储的最大值
maxLong++; // maxLong 现在是 -9223372036854775808因为它绕到了另一端。
// 也可以使用 C# 的 32 位 int 类型,最大值较小。
int maxInt = 2147483647; // int 所能存储的最大值
maxInt++; // maxInt 现在是 -2147483648因为它绕到了另一端。
你可以使用 ``0b`` 字面量书写二进制值,使用 ``0x`` 字面量书写十六进制值,使用 ``_`` 符号分隔较长的数字,提升可读性。
.. tabs::
.. code-tab:: gdscript
var x = 0b1001 # x 为 9
var y = 0xF5 # y 为 245
var z = 10_000_000 # z 为 10000000
.. code-tab:: csharp
int x = 0b1001; // x 为 9
int y = 0xF5; // y 为 245
int z = 10_000_000; // z 为 10000000
.. rst-class:: classref-reftable-group
构造函数
--------
.. table::
:widths: auto
+-----------------------+---------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`int<class_int_constructor_int>`\ (\ ) |
+-----------------------+---------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`int<class_int_constructor_int>`\ (\ from\: :ref:`int<class_int>`\ ) |
+-----------------------+---------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`int<class_int_constructor_int>`\ (\ from\: :ref:`String<class_String>`\ ) |
+-----------------------+---------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`int<class_int_constructor_int>`\ (\ from\: :ref:`bool<class_bool>`\ ) |
+-----------------------+---------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`int<class_int_constructor_int>`\ (\ from\: :ref:`float<class_float>`\ ) |
+-----------------------+---------------------------------------------------------------------------------+
.. rst-class:: classref-reftable-group
运算符
------
.. table::
:widths: auto
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator !=<class_int_operator_neq_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator !=<class_int_operator_neq_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator %<class_int_operator_mod_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator &<class_int_operator_bwand_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Color<class_Color>` | :ref:`operator *<class_int_operator_mul_Color>`\ (\ right\: :ref:`Color<class_Color>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Quaternion<class_Quaternion>` | :ref:`operator *<class_int_operator_mul_Quaternion>`\ (\ right\: :ref:`Quaternion<class_Quaternion>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`operator *<class_int_operator_mul_Vector2>`\ (\ right\: :ref:`Vector2<class_Vector2>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator *<class_int_operator_mul_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`operator *<class_int_operator_mul_Vector3>`\ (\ right\: :ref:`Vector3<class_Vector3>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Vector3i<class_Vector3i>` | :ref:`operator *<class_int_operator_mul_Vector3i>`\ (\ right\: :ref:`Vector3i<class_Vector3i>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Vector4<class_Vector4>` | :ref:`operator *<class_int_operator_mul_Vector4>`\ (\ right\: :ref:`Vector4<class_Vector4>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`Vector4i<class_Vector4i>` | :ref:`operator *<class_int_operator_mul_Vector4i>`\ (\ right\: :ref:`Vector4i<class_Vector4i>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`operator *<class_int_operator_mul_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator *<class_int_operator_mul_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`operator **<class_int_operator_pow_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator **<class_int_operator_pow_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`operator +<class_int_operator_sum_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator +<class_int_operator_sum_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`operator -<class_int_operator_dif_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator -<class_int_operator_dif_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`operator /<class_int_operator_div_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator /<class_int_operator_div_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator \<<class_int_operator_lt_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator \<<class_int_operator_lt_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator \<\<<class_int_operator_bwsl_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator \<=<class_int_operator_lte_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator \<=<class_int_operator_lte_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator ==<class_int_operator_eq_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator ==<class_int_operator_eq_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator ><class_int_operator_gt_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator ><class_int_operator_gt_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator >=<class_int_operator_gte_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator >=<class_int_operator_gte_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator >><class_int_operator_bwsr_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator ^<class_int_operator_bwxor_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator unary+<class_int_operator_unplus>`\ (\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator unary-<class_int_operator_unminus>`\ (\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator |<class_int_operator_bwor_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator ~<class_int_operator_bwnot>`\ (\ ) |
+-------------------------------------+---------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
构造函数说明
------------
.. _class_int_constructor_int:
.. rst-class:: classref-constructor
:ref:`int<class_int>` **int**\ (\ ) :ref:`🔗<class_int_constructor_int>`
构造设为 ``0``**int**\ 。
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`int<class_int>` **int**\ (\ from\: :ref:`int<class_int>`\ )
构造给定 **int** 的副本 **int**\ 。
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`int<class_int>` **int**\ (\ from\: :ref:`String<class_String>`\ )
:ref:`String<class_String>` 构造新的 **int**\ ,遵循与 :ref:`String.to_int()<class_String_method_to_int>` 相同的规则。
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`int<class_int>` **int**\ (\ from\: :ref:`bool<class_bool>`\ )
:ref:`bool<class_bool>` 构造新的 **int**\ 。\ ``true`` 会转换为 ``1``\ \ ``false`` 会转换为 ``0``\ 。
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`int<class_int>` **int**\ (\ from\: :ref:`float<class_float>`\ )
从 :ref:`float<class_float>` 构造新的 **int**\ 。这样会截断该 :ref:`float<class_float>`\ ,丢弃小数点之后的部分。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
运算符说明
----------
.. _class_int_operator_neq_float:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator !=**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_neq_float>`
如果该 **int** 与该 :ref:`float<class_float>` 不等价,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_neq_int:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator !=**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_neq_int>`
如果 **int** 不相等,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mod_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator %**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_mod_int>`
返回两个 **int** 相除后的余数。该操作使用截断除法,被除数为负数时会返回负数。如果不希望如此,请考虑使用 :ref:`@GlobalScope.posmod()<class_@GlobalScope_method_posmod>`\ 。
::
print(6 % 2) # 输出 0
print(11 % 4) # 输出 3
print(-5 % 3) # 输出 -2
.. rst-class:: classref-item-separator
----
.. _class_int_operator_bwand_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator &**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_bwand_int>`
执行按位 ``AND`` 运算。
::
print(0b1100 & 0b1010) # 输出 8二进制 1000
可用于从变量中检索二进制标志。
::
var flags = 0b101
# 检查是否启用了第一或第二个比特位。
if flags & 0b011:
do_stuff() # 会执行这一行。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Color:
.. rst-class:: classref-operator
:ref:`Color<class_Color>` **operator ***\ (\ right\: :ref:`Color<class_Color>`\ ) :ref:`🔗<class_int_operator_mul_Color>`
:ref:`Color<class_Color>` 的每个分量乘以该 **int**\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Quaternion:
.. rst-class:: classref-operator
:ref:`Quaternion<class_Quaternion>` **operator ***\ (\ right\: :ref:`Quaternion<class_Quaternion>`\ ) :ref:`🔗<class_int_operator_mul_Quaternion>`
:ref:`Quaternion<class_Quaternion>` 的每个分量乘以该 **int**\ 。此操作本身没有意义,但可以用作更大表达式的一部分。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Vector2:
.. rst-class:: classref-operator
:ref:`Vector2<class_Vector2>` **operator ***\ (\ right\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_int_operator_mul_Vector2>`
:ref:`Vector2<class_Vector2>` 的每个分量乘以该 :ref:`float<class_float>`\ 。
::
print(2 * Vector2(1, 4)) # 输出 (2, 8)
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Vector2i:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator ***\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_int_operator_mul_Vector2i>`
:ref:`Vector2i<class_Vector2i>` 的每个分量乘以该 **int**\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Vector3:
.. rst-class:: classref-operator
:ref:`Vector3<class_Vector3>` **operator ***\ (\ right\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_int_operator_mul_Vector3>`
:ref:`Vector3<class_Vector3>` 的每个分量乘以该 **int**\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Vector3i:
.. rst-class:: classref-operator
:ref:`Vector3i<class_Vector3i>` **operator ***\ (\ right\: :ref:`Vector3i<class_Vector3i>`\ ) :ref:`🔗<class_int_operator_mul_Vector3i>`
:ref:`Vector3i<class_Vector3i>` 的每个分量乘以该 **int**\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Vector4:
.. rst-class:: classref-operator
:ref:`Vector4<class_Vector4>` **operator ***\ (\ right\: :ref:`Vector4<class_Vector4>`\ ) :ref:`🔗<class_int_operator_mul_Vector4>`
:ref:`Vector4<class_Vector4>` 的每个分量乘以该 **int**\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_Vector4i:
.. rst-class:: classref-operator
:ref:`Vector4i<class_Vector4i>` **operator ***\ (\ right\: :ref:`Vector4i<class_Vector4i>`\ ) :ref:`🔗<class_int_operator_mul_Vector4i>`
:ref:`Vector4i<class_Vector4i>` 的每个分量乘以该 **int**\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_float:
.. rst-class:: classref-operator
:ref:`float<class_float>` **operator ***\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_mul_float>`
:ref:`float<class_float>` 和该 **int** 相乘。结果为 :ref:`float<class_float>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_mul_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator ***\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_mul_int>`
将两个 **int** 相乘。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_pow_float:
.. rst-class:: classref-operator
:ref:`float<class_float>` **operator ****\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_pow_float>`
**int** 提升到 :ref:`float<class_float>` 次幂。结果为 :ref:`float<class_float>`\ 。
::
print(2 ** 0.5) # 输出 1.4142135623731
.. rst-class:: classref-item-separator
----
.. _class_int_operator_pow_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator ****\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_pow_int>`
将左侧的 **int** 提升到右侧的 **int** 次幂。
::
print(3 ** 4) # 输出 81
.. rst-class:: classref-item-separator
----
.. _class_int_operator_sum_float:
.. rst-class:: classref-operator
:ref:`float<class_float>` **operator +**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_sum_float>`
将该 **int** 加上该 :ref:`float<class_float>`\ 。结果为 :ref:`float<class_float>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_sum_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator +**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_sum_int>`
将两个 **int** 相加。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_dif_float:
.. rst-class:: classref-operator
:ref:`float<class_float>` **operator -**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_dif_float>`
将该 **int** 减去该 :ref:`float<class_float>`\ 。结果为 :ref:`float<class_float>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_dif_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator -**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_dif_int>`
将两个 **int** 相减。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_div_float:
.. rst-class:: classref-operator
:ref:`float<class_float>` **operator /**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_div_float>`
将该 **int** 除以该 :ref:`float<class_float>`\ 。结果为 :ref:`float<class_float>`\ 。
::
print(10 / 3.0) # 输出 3.33333333333333
.. rst-class:: classref-item-separator
----
.. _class_int_operator_div_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator /**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_div_int>`
将两个 **int** 相除。结果为 **int**\ 。这样会截断该 :ref:`float<class_float>`\ ,丢弃小数点后的部分。
::
print(6 / 2) # 输出 3
print(5 / 3) # 输出 1
.. rst-class:: classref-item-separator
----
.. _class_int_operator_lt_float:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator <**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_lt_float>`
如果该 **int** 小于该 :ref:`float<class_float>`\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_lt_int:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator <**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_lt_int>`
如果左侧的 **int** 小于右侧的 **int**\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_bwsl_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator <<**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_bwsl_int>`
执行按位左移操作。效果上与乘以 2 的幂相同。
::
print(0b1010 << 1) # 输出 20二进制 10100
print(0b1010 << 3) # 输出 80二进制 1010000
.. rst-class:: classref-item-separator
----
.. _class_int_operator_lte_float:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator <=**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_lte_float>`
如果该 **int** 小于等于该 :ref:`float<class_float>`\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_lte_int:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator <=**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_lte_int>`
如果左侧的 **int** 小于等于右侧的 **int**\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_eq_float:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator ==**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_eq_float>`
如果该 **int** 等于该 :ref:`float<class_float>`\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_eq_int:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator ==**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_eq_int>`
如果两个 **int** 相等,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_gt_float:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator >**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_gt_float>`
如果该 **int** 大于该 :ref:`float<class_float>`\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_gt_int:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator >**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_gt_int>`
如果左侧的 **int** 大于右侧的 **int**\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_gte_float:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator >=**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_int_operator_gte_float>`
如果该 **int** 大于等于该 :ref:`float<class_float>`\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_gte_int:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator >=**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_gte_int>`
如果左侧的 **int** 大于等于右侧的 **int**\ ,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_bwsr_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator >>**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_bwsr_int>`
执行按位右移操作。效果上与除以 2 的幂相同。
::
print(0b1010 >> 1) # 输出 5二进制 101
print(0b1010 >> 2) # 输出 2二进制 10
.. rst-class:: classref-item-separator
----
.. _class_int_operator_bwxor_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator ^**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_bwxor_int>`
执行按位 ``XOR``\ (异或)运算。
::
print(0b1100 ^ 0b1010) # 输出 6二进制 110
.. rst-class:: classref-item-separator
----
.. _class_int_operator_unplus:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator unary+**\ (\ ) :ref:`🔗<class_int_operator_unplus>`
返回与 ``+`` 不存在时相同的值。单目 ``+`` 没有作用,但有时可以使你的代码更具可读性。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_unminus:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator unary-**\ (\ ) :ref:`🔗<class_int_operator_unminus>`
返回该 **int** 的相反值。如果为正数,则该将数变为负数。如果为负数,则将该数变为正数。如果为零,则不执行任何操作。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_bwor_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator |**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_int_operator_bwor_int>`
执行按位 ``OR``\ (或)运算。
::
print(0b1100 | 0b1010) # 输出 14二进制 1110
可用于在变量中存储二进制标记。
::
var flags = 0
flags |= 0b101 # 置第一和第三位。
.. rst-class:: classref-item-separator
----
.. _class_int_operator_bwnot:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator ~**\ (\ ) :ref:`🔗<class_int_operator_bwnot>`
对该 **int** 执行按位 ``NOT``\ (反)运算。由于\ `补码 <https://zh.wikipedia.org/zh-cn/%E4%BA%8C%E8%A3%9C%E6%95%B8>`__\ ,效果上与 ``-(int + 1)`` 相同。
::
print(~4) # 输出 -5
print(~(-7)) # 输出 6
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (本方法无副作用,不会修改该实例的任何成员变量。)`
.. |vararg| replace:: :abbr:`vararg (本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。)`
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
.. |static| replace:: :abbr:`static (调用本方法无需实例,可直接使用类名进行调用。)`
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效运算符。)`
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列位标志构成位掩码的整数。)`
.. |void| replace:: :abbr:`void (无返回值。)`