Saya mencoba memahami mengapa dua pernyataan berikut menghasilkan keluaran yang berbeda:
&{,$null} | % {'x'} # x
&{,(1)[1]} | % {'x'} # no output
,$null
dan ,(1)[1]
keduanya tampaknya array yang berisi satu elemen null. Namun mereka berperilaku berbeda selama keluaran dari scriptblock. Apa yang terjadi disini?
Yang kedua mengembalikan AutomationNull.Value
yang tidak disebutkan oleh pipa.
$null
disebutkan.
Lihat misalnya implementasi foreach:
https://github.com/PowerShell/PowerShell/blob/bcf86d4f8a1ce0ef11f0e9100490e790fb067574/src/System.Management.Automation/engine/runtime/Operations/MiscOps.cs#L2748
Terima kasih @powercode. Untuk pembaca lain, berikut adalah beberapa sumber tentang AutomationNull
:
@ alx9r : Ini berasal dari pertanyaan yang kemudian Anda tanyakan di # 6436 dan yang telah saya fokuskan di https://github.com/PowerShell/PowerShell/issues/6436#issuecomment -375151317, tetapi saya telah memutuskan untuk buat masalah terpisah untuk itu: # 6823