У меня есть пример программы, которая создает массив, а затем пытается присвоить значение этого массива несколько раз в другой массив как многомерный массив.
$a =@(0,0,0)
$b = @($a,$a,$a)
$b[1][2]=2
$b
'And $a is changed too:'
$a
На выходе получается:
PS E:\Workarea> .\what.ps1
0
0
2
0
0
2
0
0
2
And $a is changed too:
0
0
2
Таким образом, в данном случае переменная фактически указывает на исходную переменную. Это очень неожиданное поведение. Это довольно аккуратно, что можно сделать это, хотя я никогда не использовал союзы так часто в программировании на Си. Но я хотел бы найти способ просто присваивать значение, а не переменную.
$b = @($a.clone(),$a.clone(),$a.clone())
Думаю, это сработает, но что-то мне подсказывает, что может быть что-то более элегантное, чем это.
Спасибо за информацию.
Это PowerShell 2.0 под Windows 7 64-bit.