Powershell: Pourquoi, (1) [1] est-il différent de, $ null?

Créé le 10 mars 2018  ·  3Commentaires  ·  Source: PowerShell/PowerShell

J'essaie de comprendre pourquoi les deux déclarations suivantes donnent des résultats différents:

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

,$null et ,(1)[1] semblent tous deux être des tableaux contenant un seul élément nul. Pourtant, ils se comportent différemment lors de la sortie d'un scriptblock. Que se passe-t-il ici?

Issue-Question Resolution-Answered

Tous les 3 commentaires

Le second retourne AutomationNull.Value qui n'est pas énuméré par le pipeline.

$null est énuméré.

Voir par exemple l'implémentation de foreach:
https://github.com/PowerShell/PowerShell/blob/bcf86d4f8a1ce0ef11f0e9100490e790fb067574/src/System.Management.Automation/engine/runtime/Operations/MiscOps.cs#L2748

Merci @powercode. Pour les autres lecteurs, voici quelques ressources sur AutomationNull :

@ alx9r : Cela revient à la question que vous avez posée plus tard dans # 6436 et sur laquelle j'ai mis l'accent sur https://github.com/PowerShell/PowerShell/issues/6436#issuecomment -375151317, mais j'ai décidé de créez un problème distinct pour celui-ci: # 6823

Cette page vous a été utile?
0 / 5 - 0 notes