У меня есть пример программы, которая создает массив, а затем пытается присвоить значение этого массива несколько раз в другой массив как многомерный массив.
$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 под 64-битной Windows 7.