首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声明数组的Powershell不是那么容易吗?

声明数组的Powershell不是那么容易吗?
EN

Stack Overflow用户
提问于 2020-10-16 15:03:31
回答 1查看 37关注 0票数 1

我试着用数组来描述一个小的“列表”。我观察到一种奇怪的行为:

代码语言:javascript
复制
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

有人知道为什么吗?如何描述一个只包含一个数组的数组,而不超过一个数组?那怎么解决呢?提前感谢各位!

EN

回答 1

Stack Overflow用户

发布于 2020-10-16 16:05:44

我不太清楚为什么,但是当您声明$arrayOfArrays2时,PowerShell立即展开外部数组。

代码语言:javascript
复制
> $arrayOfArrays2.Count
2

> $arrayOfArrays2[0]
android

为了避免这种情况,您可以在外部数组声明中添加一个额外的逗号,如下所示。

代码语言:javascript
复制
> $arrayOfArrays2 = @(,@("android","linux"))

> $arrayOfArrays2.Count
1

> $arrayOfArrays2[0]
android
linux

> write-it-out $arrayOfArrays2
Items android linux
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64391714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档