# Gosub

跳到指定的标签并且继续执行，直到碰到 Return。

Gosub, Label

#### 参数

Label | 跳转的标签名称，热键标签或者热字串标签，它执行 Label 下面的命令，直到碰到一个返回或退出。"Return" 让脚本跳回到 Gosub 下面的首个命令并且在那继续执行。"Exit" 终止当前的线程。

#### 说明

和几乎所有其他命令的参数一样，Label 可以是一个变量引用，例如 %MyLabel%，这时储存在变量中的名称被用来作为目标。然而，性能有略微地损失，因为目标 Label 每次都要“查找”，而不是仅在脚本首次运行时查找一次。

当使用一个动态 Label，例如 %MyLabel%，如果 Label 不存在，将显示一个错误对话框。要避免这种情况，可提前调用 IsLabel()。例如：

    if IsLabel(VarContainingLabelName)
        Gosub %VarContainingLabelName%

虽然 Gosub 可用于简单、多用途的子程序，但考虑为更复杂的用途而使用函数。

#### 相关命令

Return, Functions, IsLabel(), Blocks, Loop, Goto

#### 范例

    Gosub, Label1
    MsgBox, Label1 子程序已经返回（它已结束）。
    return

    Label1:
    MsgBox, Label1 子程序正在运行。
    return

翻译：天堂之门 menk33@163.com 2008年11月8日