Які булеві літерали в PowerShell?
Які булеві літерали в PowerShell?
Відповіді:
$true
і $false
.
Однак це константи. Булелів немає на мовному рівні.
Залежно від того, де вони вам потрібні, ви також можете використовувати все, що примушує булеве значення, якщо тип має бути булевим, наприклад, у викликах методів, які потребують булевих (і не мають суперечливих перевантажень) або умовних операторах. Наприклад, більшість ненульових об'єктів є істинними. null
, порожні рядки, порожні масиви та число 0
є помилковими.
[bool]1
а [bool]0
також працює.
if ($s.Length) { ... }
ідеально добре, наприклад.
Для того, щоб додати додаткову інформацію до вже існуючих відповідей : булеві літерали $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
не вдалося виконати скрипт із наведеною нижче помилкою:
Неможливо обробити перетворення аргументу параметром "очищено". Неможливо перетворити значення "System.String" у тип "System.Boolean". Булеві параметри приймають лише булеві значення та числа, такі як $ True, $ False, 1 або 0.