我试着用数组来描述一个小的“列表”。我观察到一种奇怪的行为:
function write-it-out([array] $arrays)
{
foreach($a in $arrays)
{
write-host "items" $a[0] $a[1]
}
}
$arrayOfArrays1 = @(
@("apple","orange"),
@("monkey","bear")
)
$arrayOfArrays2 = @(
@("android","linux")
)
# it works
write-it-out $arrayOfArrays1
# it wont
write-it-out $arrayOfArrays2第一种情况输出预期的两行,内容如下:
苹果橙
项目
项目猴熊
但是第二个函数调用输出的不是期望。
项目android
但
项a n
项目l i
有人知道为什么吗?如何描述一个只包含一个数组的数组,而不超过一个数组?那怎么解决呢?提前感谢各位!
发布于 2020-10-16 16:05:44
我不太清楚为什么,但是当您声明$arrayOfArrays2时,PowerShell立即展开外部数组。
> $arrayOfArrays2.Count
2
> $arrayOfArrays2[0]
android为了避免这种情况,您可以在外部数组声明中添加一个额外的逗号,如下所示。
> $arrayOfArrays2 = @(,@("android","linux"))
> $arrayOfArrays2.Count
1
> $arrayOfArrays2[0]
android
linux
> write-it-out $arrayOfArrays2
Items android linuxhttps://stackoverflow.com/questions/64391714
复制相似问题