0
奇怪的行爲在這裏,我將數組分配給一個變量的值,然後我改變變量,數組變化也。與字符串和數組
$TestArray = @{ "ValueA" = "A" ; "ValueB" = "B" ; "Number" = "" }
$TestNumbers = 1..10
foreach ($number in $testnumbers) {
$results = $TestArray
$results.Number = $number
Write-Host $TestArray.Number
}
我認爲$results = $TestArray
將採取$TestArray
一個拷貝,但此試驗表明,修改$results
也改變$TestArray
相應的值
誰能幫助我理解這種行爲?
謝謝,我真的很驚訝,我只注意到這種行爲。 它是有道理的。 我想知道是適用於所有字符串數組哈希表和對象的_reference_行爲? – beehaus
這取決於如果有問題的對象可以被突變或沒有。如果它是一個哈希表,那麼是的,因爲你可以添加/刪除項目。如果它是一個不可變的對象,比如一個字符串,那麼不可以,因爲字符串不能被改變(對它們的所有操作都會產生新的對象而不是修改舊的對象)。以下是對可變對象和不可變對象之間區別的解釋:http://en.wikipedia.org/wiki/Immutable_object。 – iCodez