目前我在函数中有一个 for every 。当我在两种不同的场景中调用它时很奇怪。
如果二维数组有多个并要求每个数组的第一个槽,那么它会正确输出。
例如:
$packManagers = @( # (Name, executable, Path)
@("PowerShell Core", "pwsh", "Microsoft.Powershell"),
@("Git", "git", "Git.Git"),
@("NVM", "nvm", "CoreyButler.NVMforWindows"),
@("Python", "py", "Python3")
输出
- Powershell Core
- Git
- NVM
- Python
但是当我只输出一个值时,它开始遍历唯一值内的所有项目并获取第一个字符。 例如:
$packScoop = @( # (Name, executable, Path)
@("Scoop", "scoop", "get.scoop.sh")
)
输出
- S
- s
- g
我也尝试使用以下方法进行一些测试,但输出与预期不同。
代码:
foreach ($curr in @(@("HI", "Bi", "Try"))) {
Write-Host "$($curr[0]) - $($curr[1]) - $($curr[2])"
}
预期:
HI - Bi - Try
实际:
H - I -
B - i -
T - r - y
使用单个项目创建的集合的集合通常会被压扁(其他人很可能会向您解释原因)
如果您要制作单项数组:请使用
@(@(<#content#>))
代替
,@(<#content#>)
foreach ($curr in ,@("HI", "Bi", "Try")) {
Write-Host "$($curr[0]) - $($curr[1]) - $($curr[2])"
}
尽管我建议习惯使用
List
而不是数组,因为它们可以解决很多问题。