在之前的例子中我们解释了如何使用”clone”来安全的克隆一个数组,本篇主要会讨论如何拷贝数组的内容到另一个数组。
如果一个数组中的元素是对象(不是原始数据类型,比如数字或者字符串),数组中存储的仍然是这些对象的内存地址,因此克隆只是克隆了数组,数组中元素的引用仍然和原始数组中的元素引用一样,看下面的例子:
$object1 = @{Name='Weltner'; ID=12 } $object2 = @{Name='Frank'; ID=99 } $a = $object1, $object2 $b = $a.Clone() $b[0].Name = 'changed' $b[0].Name $a[0].Name
即使我们克隆了数组$a,新的数组$b仍然引用的是同一个对象,元素对象的更改两个数组都会受到影响。只有整个数组的内容的更改是独立的:
$object1 = @{Name='Weltner'; ID=12 } $object2 = @{Name='Frank'; ID=99 } $a = $object1, $object2 $b = $a.Clone() $b[0] = 'deleted' $b[0] $a[0]
本文链接: https://www.pstips.net/copying-arrays-part-2.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!