• Tag跟踪

    Tag跟踪

    异常跟踪是Nim 效应系统 的一部分。 引发异常是 效应 。 其他效应也可以定义。 用户定义的效应是 标记 例程并对此标记执行检查的方法:

    1. type IO = object ## input/output effect
    2. proc readLine(): string {.tags: [IO].} = discard
    3.  
    4. proc no_IO_please() {.tags: [].} =
    5. # the compiler prevents this:
    6. let x = readLine()

    标签必须是类型名称。一个 tags 列表 - 就像一个 raises 列表 - 也可以附加到一个proc类型。 这会影响类型兼容性。

    标签跟踪的推断类似于异常跟踪的推断。