Powershell 中的@() 和@{} 有什么区别以及何时使用它们?
What is the difference between @() and @{} in Powershell and when to use one over another?
我正在查看 powershell 中的一些示例并查看 @() 和 @{} 的用法。 Doing a quick google search on the difference 告诉我一个是数组,另一个是哈希表。
你能分享一些现实生活中的例子吗?比如我想构建一个哈希表而不是数组? pros/cons 一个比另一个?预先感谢您的意见!
array is simply a list of values whereas a hashtable 是 key/value 对的集合。
这里有一些例子:
数组
$i = @(1,2,3,4,5)
哈希表
[hashtable]$i = @{ Number = 1; Shape = "Square"; Color = "Blue"}
散列的优点table
主要优点是同步。
在许多情况下,散列 table 比搜索树或任何其他 table 查找结构更有效。因此,它们被广泛用于多种计算机软件,特别是关联数组、数据库索引、缓存和集合。
散列的缺点table
哈希冲突实际上是不可避免的。在散列大量可能密钥的随机子集时。
哈希table在有很多冲突时变得非常低效。
哈希 table 不允许空值,如哈希映射。
数组的优点
类型安全。收集相同类型的数据。
可以通过索引访问
用于存储较少的值。
数组的缺点
固定尺寸。
内存浪费。在处理大量值时没有用。
我正在查看 powershell 中的一些示例并查看 @() 和 @{} 的用法。 Doing a quick google search on the difference 告诉我一个是数组,另一个是哈希表。
你能分享一些现实生活中的例子吗?比如我想构建一个哈希表而不是数组? pros/cons 一个比另一个?预先感谢您的意见!
array is simply a list of values whereas a hashtable 是 key/value 对的集合。
这里有一些例子:
数组
$i = @(1,2,3,4,5)
哈希表
[hashtable]$i = @{ Number = 1; Shape = "Square"; Color = "Blue"}
散列的优点table
主要优点是同步。
在许多情况下,散列 table 比搜索树或任何其他 table 查找结构更有效。因此,它们被广泛用于多种计算机软件,特别是关联数组、数据库索引、缓存和集合。
散列的缺点table
哈希冲突实际上是不可避免的。在散列大量可能密钥的随机子集时。
哈希table在有很多冲突时变得非常低效。
哈希 table 不允许空值,如哈希映射。
数组的优点
类型安全。收集相同类型的数据。
可以通过索引访问
用于存储较少的值。
数组的缺点
固定尺寸。
内存浪费。在处理大量值时没有用。