鉴于这可行:
$ar = @()
$ar -is [Array]
True
为什么不起作用?
function test {
$arr = @()
return $arr
}
$ar = test
$ar -is [Array]
False
也就是说,为什么没有从测试函数返回空数组?
请您参考如下方法:
您的函数不起作用,因为PowerShell返回所有non-captured stream output,而不仅仅是return
语句的参数。在此过程中,将一个空数组整理成$null
。但是,您可以通过prepending it with the array construction operator(,
)返回时保留一个数组:
function test {
$arr = @()
return ,$arr
}