• Effects编译指示

    Effects编译指示

    effects 编译指示旨在帮助程序员进行效果分析。 这是一个声明,使编译器将所有推断的效果输出到 effects 的位置:

    1. proc p(what: bool) =
    2. if what:
    3. raise newException(IOError, "IO")
    4. {.effects.}
    5. else:
    6. raise newException(OSError, "OS")

    编译器生成一条提示消息,可以引发 IOError 。 未列出 OSError ,因为它不能在分支中引发 effects 编译指示。