Булевы литералы в PowerShell - программирование
Подтвердить что ты не робот

Булевы литералы в PowerShell

Что такое булевы литералы в PowerShell?

4b9b3361

Ответ 1

$true и $false.

Это константы. Для булевых языков нет литералов уровня.

В зависимости от того, где они вам нужны, вы также можете использовать все, что прибегает к логическому значению, если тип должен быть логическим, например. в вызовах методов, которые требуют булевых (и не имеют противоречивой перегрузки) или условных операторов. Например, большинство ненулевых объектов являются истинными. null, пустые строки, пустые массивы и число 0 являются ложными.

Ответ 2

[bool]1 и [bool]0 также работает.

Ответ 3

Просто чтобы добавить больше информации: логические литералы $true и $false также работают как есть, когда используются в качестве параметров командной строки для сценариев PowerShell (PS). Для приведенного ниже сценария PS, который хранится в файле с именем installmyapp.ps1:

param (
    [bool]$cleanuprequired
)

echo "Batch file starting execution."

Теперь, если мне нужно вызвать этот файл PS из командной строки PS, вот как я могу это сделать:

installmyapp.ps1 -cleanuprequired $true

ИЛИ ЖЕ

installmyapp.ps1 -cleanuprequired 1

Здесь 1 и $true эквивалентны. Кроме того, 0 и $false эквивалентны.

Примечание. Никогда не ожидайте, что строковый литерал true может быть автоматически преобразован в логическое значение. Например, если я запускаю следующую команду:

installmyapp.ps1 -cleanuprequired true

он не может выполнить скрипт с приведенной ниже ошибкой:

Не удалось обработать преобразование аргумента для параметра 'cleanuprequired'. Невозможно преобразовать значение "System.String" в тип "System.Boolean". Логические параметры принимают только логические значения и числа, такие как $ True, $ False, 1 или 0.