Powershell: Por que, (1) [1] é diferente de $ null?

Criado em 10 mar. 2018  ·  3Comentários  ·  Fonte: PowerShell/PowerShell

Estou tentando entender por que as duas instruções a seguir geram resultados diferentes:

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

,$null e ,(1)[1] parecem ser arrays contendo um único elemento nulo. No entanto, eles se comportam de maneira diferente durante a saída de um scriptblock. O que esta acontecendo aqui?

Issue-Question Resolution-Answered

Todos 3 comentários

O segundo retorna AutomationNull.Value que não é enumerado pelo pipeline.

$null é enumerado.

Veja, por exemplo, a implementação de foreach:
https://github.com/PowerShell/PowerShell/blob/bcf86d4f8a1ce0ef11f0e9100490e790fb067574/src/System.Management.Automation/engine/runtime/Operations/MiscOps.cs#L2748

Obrigado @powercode. Para outros leitores, aqui estão alguns recursos sobre AutomationNull :

@ alx9r : Isso se resume à pergunta que você fez mais tarde em # 6436 e que coloquei em foco em https://github.com/PowerShell/PowerShell/issues/6436#issuecomment -375151317, mas decidi crie um problema separado para ele: # 6823

Esta página foi útil?
0 / 5 - 0 avaliações