mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2025-12-31 09:49:22 +03:00
216 lines
10 KiB
ReStructuredText
216 lines
10 KiB
ReStructuredText
:github_url: hide
|
||
|
||
.. _class_bool:
|
||
|
||
bool
|
||
====
|
||
|
||
Встроенный логический тип.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Описание
|
||
----------------
|
||
|
||
**bool** — это встроенный тип :ref:`Variant<class_Variant>`, который может хранить только одно из двух значений: ``true`` или ``false``. Вы можете представить его как переключатель, который может быть включен или выключен, или как двоичную цифру, которая может быть 1 или 0.
|
||
|
||
Булевы значения можно напрямую использовать в ``if`` и других условных операторах:
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var can_shoot = true
|
||
if can_shoot:
|
||
launch_bullet()
|
||
|
||
.. code-tab:: csharp
|
||
|
||
bool canShoot = true;
|
||
if (canShoot)
|
||
{
|
||
LaunchBullet();
|
||
}
|
||
|
||
|
||
|
||
Все операторы сравнения возвращают логические значения (``==``, ``>``, ``<=`` и т. д.). Таким образом, нет необходимости сравнивать сами логические значения. Вам не нужно добавлять ``== true`` или ``== false``.
|
||
|
||
Логические значения можно комбинировать с логическими операторами ``and``, ``or``, ``not`` для создания сложных условий:
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
if bullets > 0 and not is_reloading():
|
||
launch_bullet()
|
||
|
||
if bullets == 0 or is_reloading():
|
||
play_clack_sound()
|
||
|
||
.. code-tab:: csharp
|
||
|
||
if (bullets > 0 && !IsReloading())
|
||
{
|
||
LaunchBullet();
|
||
}
|
||
|
||
if (bullets == 0 || IsReloading())
|
||
{
|
||
PlayClackSound();
|
||
}
|
||
|
||
|
||
|
||
\ **Примечание:** В современных языках программирования логические операторы оцениваются по порядку. Все оставшиеся условия пропускаются, если их результат не повлияет на конечное значение. Эта концепция известна как `оценка короткого замыкания <https://en.wikipedia.org/wiki/Short-circuit_evaluation>`__ и может быть полезна для избежания оценки дорогостоящих условий в некоторых критических для производительности случаях.
|
||
|
||
\ **Примечание:** По соглашению встроенные методы и свойства, возвращающие логические значения, обычно определяются как вопросы типа «да-нет», отдельные прилагательные или тому подобное (:ref:`String.is_empty()<class_String_method_is_empty>`, :ref:`Node.can_process()<class_Node_method_can_process>`, :ref:`Camera2D.enabled<class_Camera2D_property_enabled>` и т. д.).
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Конструкторы
|
||
------------------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+-------------------------+----------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>`\ (\ ) |
|
||
+-------------------------+----------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>`\ (\ from\: :ref:`bool<class_bool>`\ ) |
|
||
+-------------------------+----------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>`\ (\ from\: :ref:`float<class_float>`\ ) |
|
||
+-------------------------+----------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`bool<class_bool_constructor_bool>`\ (\ from\: :ref:`int<class_int>`\ ) |
|
||
+-------------------------+----------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Операторы
|
||
------------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+-------------------------+-----------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator !=<class_bool_operator_neq_bool>`\ (\ right\: :ref:`bool<class_bool>`\ ) |
|
||
+-------------------------+-----------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator \<<class_bool_operator_lt_bool>`\ (\ right\: :ref:`bool<class_bool>`\ ) |
|
||
+-------------------------+-----------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator ==<class_bool_operator_eq_bool>`\ (\ right\: :ref:`bool<class_bool>`\ ) |
|
||
+-------------------------+-----------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator ><class_bool_operator_gt_bool>`\ (\ right\: :ref:`bool<class_bool>`\ ) |
|
||
+-------------------------+-----------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описания конструктора
|
||
------------------------------------------
|
||
|
||
.. _class_bool_constructor_bool:
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`bool<class_bool>` **bool**\ (\ ) :ref:`🔗<class_bool_constructor_bool>`
|
||
|
||
Создает **bool** со значением ``false``.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`bool<class_bool>` **bool**\ (\ from\: :ref:`bool<class_bool>`\ )
|
||
|
||
Создает **bool** как копию заданного **bool**.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`bool<class_bool>` **bool**\ (\ from\: :ref:`float<class_float>`\ )
|
||
|
||
Привести значение :ref:`float<class_float>` к логическому значению. Возвращает ``false``, если ``from`` равен ``0.0`` (включая ``-0.0``), и ``true`` для всех других значений (включая :ref:`@GDScript.INF<class_@GDScript_constant_INF>` и :ref:`@GDScript.NAN<class_@GDScript_constant_NAN>`).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`bool<class_bool>` **bool**\ (\ from\: :ref:`int<class_int>`\ )
|
||
|
||
Привести значение :ref:`int<class_int>` к логическому значению. Возвращает ``false``, если ``from`` равен ``0``, и ``true`` для всех остальных значений.
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описания оператора
|
||
------------------------------------
|
||
|
||
.. _class_bool_operator_neq_bool:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator !=**\ (\ right\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_bool_operator_neq_bool>`
|
||
|
||
Возвращает ``true``, если два булевых значения не равны. То есть одно из них ``true``, а другое ``false``. Эту операцию можно рассматривать как логическое XOR.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_bool_operator_lt_bool:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator <**\ (\ right\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_bool_operator_lt_bool>`
|
||
|
||
Возвращает ``true`` , если левый операнд равен ``false``, а правый операнд равен ``true``.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_bool_operator_eq_bool:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator ==**\ (\ right\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_bool_operator_eq_bool>`
|
||
|
||
Возвращает ``true``, если два булевых значения равны. То есть оба ``true`` или оба ``false``. Эту операцию можно рассматривать как логическое EQ или XNOR.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_bool_operator_gt_bool:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator >**\ (\ right\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_bool_operator_gt_bool>`
|
||
|
||
Возвращает ``true``, если левый операнд равен ``true``, а правый операнд равен ``false``.
|
||
|
||
.. |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 (Нет возвращаемого значения.)`
|