此变量尚未分配值(全局变量)

时间:2019-03-02 17:35:59

标签: autohotkey

我刚刚发现,如果我尝试在使用简单热键后声明的函数中使用全局变量,则会出现警告,指出该全局变量没有值。

插图:

code and warning image

在此示例中,当我按Shift + l时,会出现警告。

有人可以解释吗?

1 个答案:

答案 0 :(得分:5)

变量必须在auto-execute section或热键/热字符串/或其他函数中声明。

new Regex(@"([\d.][.][\d.])([a-zA-Z- -/]+)");

或 要访问函数内的全局变量,您需要在函数内添加全局:

#Warn
global a := "10/10"  ; super-global variable

$+p:: Pause

$+1:: foo()

foo(){  
    MsgBox % "a = " . a
}

或:

#Warn

a := "10/10"  ; global variable

$+p:: Pause

$+1:: foo()

foo(){
    global
    MsgBox % "a = " . a
}

有关更多详细信息,请阅读Local and Global Variables