Apa literal boolean di PowerShell?
Apa literal boolean di PowerShell?
Jawaban:
$true
dan $false
.
Itu adalah konstanta. Tidak ada literal tingkat bahasa untuk boolean.
Bergantung pada di mana Anda membutuhkannya, Anda juga dapat menggunakan apa pun yang memaksa ke nilai boolean, jika jenisnya harus boolean, misalnya dalam pemanggilan metode yang membutuhkan boolean (dan tidak memiliki overload yang saling bertentangan), atau pernyataan bersyarat. Sebagian besar objek non-null benar, misalnya. null
, string kosong, array kosong dan jumlahnya 0
salah.
[bool]1
dan [bool]0
juga berfungsi.
if ($s.Length) { ... }
baik-baik saja, misalnya.
Untuk menambahkan informasi lebih lanjut ke jawaban yang sudah ada : Huruf boolean $true
dan $false
juga berfungsi seperti saat digunakan sebagai parameter baris perintah untuk skrip PowerShell (PS). Untuk skrip PS di bawah ini yang disimpan dalam file bernama installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
Sekarang jika saya harus memohon file PS ini dari baris perintah PS, ini adalah bagaimana saya dapat melakukannya:
installmyapp.ps1 -cleanuprequired $true
ATAU
installmyapp.ps1 -cleanuprequired 1
Di sini 1
dan $true
setara. Juga, 0
dan $false
setara.
Catatan : Jangan pernah berharap string literal true
dapat secara otomatis dikonversi ke boolean. Misalnya, jika saya menjalankan perintah di bawah ini:
installmyapp.ps1 -cleanuprequired true
gagal menjalankan skrip dengan kesalahan di bawah ini:
Tidak dapat memproses transformasi argumen pada parameter 'cleanuprequired'. Tidak dapat mengonversi nilai "System.String" untuk mengetik "System.Boolean". Parameter Boolean hanya menerima nilai dan angka Boolean, seperti $ True, $ False, 1 atau 0.