Gosub

AutoHotKey

Gosub

跳转到指定的标签继续执行,直到遇到 Return.

Gosub, Label

参数

标签

跳转的目标 标签, 热键标签热字串标签, 这样会执行 Label 下的命令, 直到遇到 Return 或 Exit. "Return" 会让脚本返回到 Gosub 后的首个命令恢复执行. "Exit" 终止 当前线程.

备注

和几乎其他所有命令的参数一样, Label 可以为 变量 引用 (例如 %MyLabel%), 此时将使用变量中的名称作为跳转的目标. 然而, 性能会稍微降低, 因为每次都必须 "查找" 目标标签名而不是只在脚本首次加载时查找一次.

使用类似 %MyLabel% 的动态标签时, 如果目标标签不存在则会显示错误对话框. 要避免此问题, 请预先调用 IsLabel(). 例如:

if IsLabel(VarContainingLabelName)
    Gosub %VarContainingLabelName%

尽管 Gosub 可用于简单, 普通用途的子程序, 不过对于更复杂的情况请考虑使用 函数.

相关

Return, 函数, IsLabel(), 区块, Loop, Goto

示例

Gosub, Label1 
MsgBox, The Label1 subroutine has returned (it is finished).
return

Label1:
MsgBox, The Label1 subroutine is now running.
return