2016-02-06 98 views
2
PS C:\Users\Hind> [email protected]{} 
PS C:\Users\Hind> $b+={k="a";v="b"} 
A hash table can only be added to another hash table. 
At line:1 char:1 
+ $b+={k="a";v="b"} 
+ ~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidOperation: (:) [], RuntimeException 
+ FullyQualifiedErrorId : AddHashTableToNonHashTable 

为什么会失败?我怎样才能成功添加一个元素到哈希表?添加元素,哈希表失败

回答

2

修正,这将失败,因为你缺少的@字符前面的@{k="a";b="b"}

 
PS C:\Users\Hind> [email protected]{} 
PS C:\Users\Hind> $b+=@{k="a";v="b"} 

@{}被宣告一个新的哈希表。 {}是一个脚本块。他们不一样。

+0

所以,我可以一个哈希表追加到另一个?任何像这样的语法?我不确定Powershell是否支持任何类型的操作符重载? –

+0

{}只是PowerShell中的封闭件没有@ {}等的操作数是不同类型的,如果省略@。 –

+0

我尝试:d:\> $ myhash = @ {K1 = “VA1”; K2 = “val2的”} PS d:\> $ myhash + = {K3 = “VAL3”} 哈希表只能被添加到另一个哈希表。仍然不起作用? –