Powershell: Warum unterscheidet sich (1) [1] von $ null?

Erstellt am 10. März 2018  ·  3Kommentare  ·  Quelle: PowerShell/PowerShell

Ich versuche zu verstehen, warum die folgenden zwei Aussagen unterschiedliche Ergebnisse liefern:

&{,$null} | % {'x'} # x
&{,(1)[1]} | % {'x'} # no output

,$null und ,(1)[1] scheinen beide Arrays zu sein, die ein einzelnes Nullelement enthalten. Bei der Ausgabe eines Skriptblocks verhalten sie sich jedoch anders. Was passiert hier?

Issue-Question Resolution-Answered

Alle 3 Kommentare

Die zweite gibt AutomationNull.Value die von der Pipeline nicht aufgelistet werden.

$null wird aufgezählt.

Siehe zum Beispiel die Implementierung von foreach:
https://github.com/PowerShell/PowerShell/blob/bcf86d4f8a1ce0ef11f0e9100490e790fb067574/src/System.Management.Automation/engine/runtime/Operations/MiscOps.cs#L2748

Vielen Dank an @powercode. Für andere Leser sind hier einige Ressourcen zu AutomationNull :

@ alx9r : Dies https://github.com/PowerShell/PowerShell/issues/6436#issuecomment -375151317 in den Fokus gerückt habe, aber ich habe mich dazu entschlossen Erstellen Sie ein separates Problem dafür: # 6823

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen