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

axe*_*l13 0 autohotkey

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

插图:

代码和警告图像

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

谁能解释?

use*_*297 5

必须在自动执行部分或热键/热字符串/或其他函数中声明变量。

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

$+p:: Pause

$+1:: foo()

foo(){  
    MsgBox % "a = " . a
}
Run Code Online (Sandbox Code Playgroud)

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

#Warn

a := "10/10"  ; global variable

$+p:: Pause

$+1:: foo()

foo(){
    global
    MsgBox % "a = " . a
}
Run Code Online (Sandbox Code Playgroud)

要么:

#Warn

$+1:: 
    global a := "10/10"
    foo()
return

$+p:: Pause

foo(){
    MsgBox % "a = " . a
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请阅读局部和全局变量