【发布时间】:2015-07-24 09:55:53
【问题描述】:
谁能解释一下为什么我们在使用哈希表时会有不同的行为?
实际上,当值是简单类型(整数、字符串……)或对象类型时,行为是不同的。当我们使用简单类型并且我们将值影响到变量并更新它时;这不会更新哈希表。但是当我们使用对象类型并且我们将值影响到变量并更新它时;这将更新哈希表。
举个例子会更容易理解^^。
简单类型:
$hash=@{
a=1
b=2
}
$variable = $hash['a']
$variable = 3
Result: $hash
Name Value
---- -----
a 1
b 2
对象类型:
$hash=@{
a=New-Object PSObject -Property @{ obj=1 }
b=New-Object PSObject -Property @{ obj=2 }
}
$variable = $hash['a']
$variable.obj = 3
Result: $hash
Name Value
---- -----
a @{obj=3}
b @{obj=2}
【问题讨论】:
标签: powershell hashtable