Powershell: ¿Por qué (1) [1] es diferente de $ null?

Creado en 10 mar. 2018  ·  3Comentarios  ·  Fuente: PowerShell/PowerShell

Estoy tratando de entender por qué las siguientes dos declaraciones producen diferentes resultados:

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

,$null y ,(1)[1] ambos parecen ser matrices que contienen un solo elemento nulo. Sin embargo, se comportan de manera diferente durante la salida de un bloque de script. ¿Que está sucediendo aquí?

Issue-Question Resolution-Answered

Todos 3 comentarios

El segundo devuelve AutomationNull.Value que no está enumerado por la canalización.

$null está enumerado.

Vea, por ejemplo, la implementación de foreach:
https://github.com/PowerShell/PowerShell/blob/bcf86d4f8a1ce0ef11f0e9100490e790fb067574/src/System.Management.Automation/engine/runtime/Operations/MiscOps.cs#L2748

Gracias @powercode. Para otros lectores, aquí hay algunos recursos sobre AutomationNull :

@ alx9r : Esto se reduce a la pregunta que hizo más tarde en el n. ° 6436 y que he enfocado en https://github.com/PowerShell/PowerShell/issues/6436#issuecomment -375151317, pero he decidido hacerlo cree una edición separada para ello: # 6823

¿Fue útil esta página
0 / 5 - 0 calificaciones