2016-02-06 100 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」} 哈希表只能被添加到另一個哈希表。仍然不起作用? –