ディーン
2a53fe6d68
2020/12/26 (土) 03:15:09
2.3から仕様が変わったのかと思って簡単に調べました。
IDE:2.3.1.542
Rutime:2.3.1.409
Windows
var _arr1 = [1, 0, 0];
var _arr2 = _arr1;
_arr2[1] = 1;
show_debug_message(string(_arr1));
show_debug_message(string(_arr2));
結果
[ 1,0,0 ]
[ 1,1,0 ]
もし参照になっている場合、_arr2
の要素に更新をかけると参照されている_arr1
も更新されます。
結果としては元々の仕様通り、配列は値渡し(コピー)になってました。
通報 ...
返信、検証ありがとうございます。
どうも1,2次元配列と3次元配列でスクリプトでの扱いに違いがあるみたいで、そこでつまづいています。
3次元配列を使ってこのようなコードを書いてみたのですが、
このように書くとオブジェクトの_firld配列は変更されないはずなのですが、実際には_firld[0][0][0]に123が書き込まれてしまいます。
2次元配列でほぼ同じコードとスクリプトを書くと元の配列に変更は加えられませんでした。
3次元配列をスクリプトに参照ではなく値渡しする方法がわからず困っています。解決法を教えていただければ幸いです。