AutoHotKey を使い始めた人が他の言語を経験していると、「配列が関数の中で参照できない」と詰まることがある。これを解決する。
結論から言えば、グローバル配列を参照するなら、宣言が必要となる。
検証スクリプト
test.ahk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Array := Object() Array[0] := "item" Array[1] := 1 Array[2] := 3 MsgArrayTest1() ; 結果:{空白}, {空白} MsgArrayTest1() { Array[1] := Array[1] + 1 MsgBox % Array[1] MsgBox % Array[0] } MsgArrayTest2() ; 結果:2, item MsgArrayTest2() { global Array ; グローバル変数を参照するための宣言 Array[1] := Array[1] + 1 MsgBox % Array[1] MsgBox % Array[0] } MsgVariable(Array[0]) ; 結果: item MsgVariable(outString) { MsgBox %outString% } MsgArray(Array) ; 結果:3 MsgArray(outString) { MsgBox % outString[2] } |