Powershell 中的@() 和@{} 之间有什么区别以及何时使用它们?

Pra*_*dav 5 arrays powershell hashtable

我在 powershell 中查看了一些示例,并查看了 @() 和 @{} 的用法。对差异进行快速谷歌搜索告诉我一个是数组,另一个是哈希表。

你能分享一些现实生活中的例子,比如我想建立一个哈希表而不是一个数组吗?以及一个比另一个的优缺点?提前感谢您的意见!

I.T*_*ent 5

一个阵列是简单的值的列表而散列表是键/值对的集合。

这里有些例子:

大批

$i = @(1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)

哈希表

[hashtable]$i = @{ Number = 1; Shape = "Square"; Color = "Blue"}
Run Code Online (Sandbox Code Playgroud)

  • 很好,但值得一提的是,数组文字不需要 `@(...)` (在旧的 PS 版本中甚至会产生不必要的开销) - `$i = 1,2,3,4,5` 就可以了。`@(...)` 的主要目的是确保命令的输出被视为数组。 (2认同)