สิ่งที่คำตอบเหล่านี้ไม่ได้เน้นคือเมื่อเปรียบเทียบค่ากับ $ null คุณต้องใส่ $ null ทางด้านซ้ายมิฉะนั้นคุณอาจมีปัญหาเมื่อเปรียบเทียบกับค่าประเภทคอลเลกชัน ดู: https://github.com/nightroman/PowerShellTraps/blob/master/Basic/Comparison-operators-with-collections/looks-like-object-is-null.ps1
$value = @(1, $null, 2, $null)
if ($value -eq $null) {
Write-Host "$value is $null"
}
บล็อกด้านบนถูกดำเนินการ (ขออภัย) สิ่งที่น่าสนใจยิ่งไปกว่านั้นคือใน Powershell ค่า $ สามารถเป็นได้ทั้ง $ null และไม่ใช่ $ null:
$value = @(1, $null, 2, $null)
if (($value -eq $null) -and ($value -ne $null)) {
Write-Host "$value is both $null and not $null"
}
ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องใส่ $ null ทางด้านซ้ายมือเพื่อให้การเปรียบเทียบเหล่านี้ทำงานกับคอลเล็กชัน:
$value = @(1, $null, 2, $null)
if (($null -eq $value) -and ($null -ne $value)) {
Write-Host "$value is both $null and not $null"
}
ฉันเดาว่านี่แสดงให้เห็นถึงพลังของ Powershell อีกครั้ง!