Может кто-нибудь объяснить, пожалуйста, почему у нас разные поведения, когда мы работаем с хэш-таблицами?powershell hashtable манипуляция
Фактически, когда значение представляет собой простой тип (целое число, строка ...) или тип объекта, поведение отличается. Когда мы работаем с простым типом, и мы влияем на значение переменной и обновляем ее; это не будет обновлять хеш-таблицу. Но когда мы работаем с типом объекта, мы влияем на значение переменной и обновляем ее; это обновит хеш-таблицу.
Это будет легче понять с помощью примера ^^.
Простой тип:
[email protected]{
a=1
b=2
}
$variable = $hash['a']
$variable = 3
Result: $hash
Name Value
---- -----
a 1
b 2
Тип объекта:
[email protected]{
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}
Очень хорошее объяснение. Довольно уверенно, что поведение строк типа типа похоже на то, что они неизменяемы во время выполнения –