AutoHotKey - 声明全局数组不起作用

时间:2017-02-05 10:00:06

标签: arrays insert global autohotkey

; Give user the opportunity to choose his own hotkey
Gui, Add, Hotkey, x21 y234 w240 h30 vPanicKey gRunPanicKey,^F12

global myList := ["foo"]

RunPanicKey:
    if(PanicKey != "") { ; Make sure the hotkey chosen by the user isn't empty.
        myList.Insert("bar") ; Insert new string into the array.
        myList2 := myList[2] ; Get 2nd index value and store it in myList2
        MsgBox,0,My Array, The 2nd value of myList is: %myList2%
    }
return

myList.Insert()似乎无效,因为脚本无法找到数组,因此myList2为空。但是怎么了?我以为我把阵列变得全球化了?

1 个答案:

答案 0 :(得分:0)

GuiClose:
    ExitApp
return

global myList := ["foo"]

从评论中可以看出,问题不在于global关键字(您实际上根本不需要)。程序不起作用的原因是return语句。 脚本首次返回后的所有内容都会在脚本启动时自动执行 有关详细信息,请参阅https://autohotkey.com/docs/Scripts.htm#auto。因此,只需在文件的最开头移动变量初始化。