【问题标题】:This variable has not been assigned a value (a global variable)该变量尚未赋值(全局变量)
【发布时间】:2019-03-03 02:47:04
【问题描述】:

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

插图:

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

谁能解释一下?

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

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

    #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
    }
    

    或:

    #Warn
    
    $+1:: 
        global a := "10/10"
        foo()
    return
    
    $+p:: Pause
    
    foo(){
        MsgBox % "a = " . a
    }
    

    更多详情请阅读Local and Global Variables

    【讨论】:

    • 如果我想从另一个脚本访问变量怎么办?我似乎什么都试过了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2021-11-17
    相关资源
    最近更新 更多