懒执行块

懒执行块可以暂存一些指令,延迟执行,这对于错误处理非常有用。

全局的懒执行块

你可以在全局范围内定义懒执行块。

<variable-name> := {
    # expressions to be executed lazily
    # ...
}

使用小括号执行懒执行块,就像函数一样,但是没有任何参数。

<lazy-block>()

你可以使用 back 关键字提前结束懒执行块的执行

<variable-name> := {
    back
    # here will not be executed
}

你也可以使用带有值的 back 表达式返回值

<variable-name1> := {
    back <backed-value>
    # here will not be executed
}
<variable-name2> := <variable-name1>()
# <variable-name2> is defined with <backed-value>

函数内的懒执行块

你可以在懒执行块内返回函数

@<function-name>() {
    <variable-name> := {
        return <returned-value>
    }

    <variable-name>()
    # here will not be executed
}

你可以利用这个特性简化错误处理

@<function-name>() {
    <variable-name> := {
        # error resolve
        return <error-value>
    }

    # operations ...
    if error {
        <variable-name>()
    }
    # operations ...
    if error {
        <variable-name>()
    }
}

点此查看原文