gpt4 book ai didi

autohotkey - 全局变量没有全局作用域

转载 作者:行者123 更新时间:2023-12-03 23:46:31 24 4
gpt4 key购买 nike

supposedlyGlobalVariable := "blah"

ARoutine()
{
localVariable := "asdf"
MsgBox, The global variable value is %supposedlyGlobalVariable%. The local variable value is %localVariable%.
}


^!X:: ;This assigns the hotkey CTRL + ALT + X to run the routine
ARoutine()
return

运行代码,结果为:
"The global variable value is .  The local variable value is asdf."

documentation状态:

Variable scope and declarations: With the exception of local variables in functions, all variables are global; that is, their contents may be read or altered by any part of the script.



为什么我的全局变量在函数内没有作用域?

最佳答案

全局变量的文档可以在这里找到:
https://autohotkey.com/docs/Functions.htm#Global

Global variables

To refer to an existing global variable inside a function (or create a new one), declare the variable as global prior to using it. For example:


LogToFile(TextToLog)
{
global LogFileName
FileAppend, %TextToLog%`n, %LogFileName%
}

我相信 AHK 的 global 概念与其他语言有点不同。使用 AHK,您可以创建一个变量并在多个热键和子程序中使用它,而无需将其声明为全局变量。
Gv := 0

f1::SetTimer, Action, % (on:=!on) ? (1000) : ("Off")

Action:
Gv++
trayTip,, % Gv
Return

f2::Msgbox, % Gv

代码说明:
  • F1 键切换计时器以运行子程序:Action1000多发性硬化症。
  • %开始一个表达式。
  • on:=!on反转变量 on 的二进制值每次按F1。
  • ?:统称为三元运算符。
  • 当 on=1 延迟设置为 1000多发性硬化症;当 on=0 时,计时器开启 Off .
  • ++运算符将变量 Gv 加 1。

    关于autohotkey - 全局变量没有全局作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198900/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com