次の2つのステートメントが異なる出力を生成する理由を理解しようとしています。
&{,$null} | % {'x'} # x
&{,(1)[1]} | % {'x'} # no output
,$null
と,(1)[1]
どちらも、単一のnull要素を含む配列のようです。 ただし、スクリプトブロックからの出力中は動作が異なります。 ここで何が起きてるの?
2番目は、パイプラインによって列挙されていないAutomationNull.Value
を返します。
$null
が列挙されます。
たとえば、foreachの実装を参照してください。
https://github.com/PowerShell/PowerShell/blob/bcf86d4f8a1ce0ef11f0e9100490e790fb067574/src/System.Management.Automation/engine/runtime/Operations/MiscOps.cs#L2748
@powercodeありがとうございます。 他の読者のために、ここにAutomationNull
に関するいくつかのリソースがあります:
@ alx9r :これは、後で#6436で尋ねた質問であり、 https: //github.com/PowerShell/PowerShell/issues/6436#issuecomment -375151317で焦点を当てましたが、別の問題を作成します:#6823