Files
godot-docs-l10n/classes/ru/class_bool.rst

216 lines
10 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_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 (Нет возвращаемого значения.)`