Używam Powershell 2.0. Kiedy utworzę nową zmienną jako tablicę, a następnie ustawię inną zmienną tak, aby była równa pierwszej, druga zmienna "odzwierciedla" pierwszą zmienną. Po zmianie obiektu w oryginalnej tablicy, ta sama zmiana pojawia się w drugiej tablicy. Na przykład,Dlaczego niektóre tablice lustrzane siebie w Powershell
$array0001=6,7,3,4,0
$array0002=$array0001
$array0001[3]=55
$array0002
z wyjściem będąc
6
7
3
55
0
Zauważyłem, że po ustawieniu drugą zmienną mieć taką samą wartość jak pierwszej zmiennej, ale tym razem zamkniętym wewnątrz operatora podwyrażenie, modyfikacje do pierwszej tablicy nie wpływa na drugą tablicę. Na przykład,
$array0001=6,7,3,4,0
$array0002=$($array0001)
$array0001[3]=55
$array0002
z wyjściem będąc
6
7
3
4
0
Dlaczego załączając wartość zmianą operatora podwyrażenie zachowanie zmiennej? Czy istnieje inny lub lepszy sposób uniknięcia tworzenia zmiennych tablicowych, które "lustrują się" nawzajem?
ETA: Zauważyłem, że zarówno [email protected]($array0001)
, jak i $array0002=&{$array0001}
osiągają dokładnie ten sam cel.