【发布时间】:2014-04-16 02:17:42
【问题描述】:
我试图了解@() 数组构造函数的行为,但遇到了这个非常奇怪的测试。
似乎空管道的值与$null“不完全”相同,即使它是-eq $null
每个语句的输出显示在###之后
$y = 1,2,3,4 | ? { $_ -ge 5 }
$z = $null
if ($y -eq $null) {'y is null'} else {'y NOT null'} ### y is null
if ($z -eq $null) {'z is null'} else {'z NOT null'} ### z is null
$ay = @($y)
$az = @($z)
"ay.length = " + $ay.length ### ay.length = 0
"az.length = " + $az.length ### az.length = 1
$az[0].GetType() ### throws exception because $az[0] is null
所以 $az 数组的长度为 1,$az[0] 为 $null。
但真正的问题是:$y 和 $z 怎么可能都是 -eq $null,但是当我用 @(...) 构造数组时,一个数组为空,另一个包含单个 $null 元素?
【问题讨论】:
标签: powershell null