簡體   English   中英

字符串和數組的奇怪行為

[英]Strange behaviour with strings and arrays

在這里,我將數組的值分配給變量,然后更改變量,數組也會發生變化。

$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

誰能幫助我了解這種行為?

這樣做:

$results = $TestArray

將使$results 引用TestArray 引用的同一對象。 因此,如果更改一個,則另一個也會受到影響,因為它們是同一對象。


要代替$results 復制 $TestArray ,可以使用其Clone方法

$results = $TestArray.Clone()

另外,僅作記錄, $TestArray實際上不是數組。 它是一個哈希表 (也稱為哈希圖),其中鍵與值配對。 數組將類似於:

$TestArray = (1, 2, 3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM