used 编译提示

当一个符号既未导出也未被使用时,Nim 会输出一条警告消息。给这个符号加上 used 编译提示可以抑制这条消息。 当通过宏生成符号时,这个编译提示非常有用:

  1. template implementArithOps(T) =
  2. proc echoAdd(a, b: T) {.used.} =
  3. echo a + b
  4. proc echoSub(a, b: T) {.used.} =
  5. echo a - b
  6. # 'echoSub' 虽然未被使用,但是不会触发警告
  7. implementArithOps(int)
  8. echoAdd 3, 5

used 也可用作顶层语句,把模块标记为”已使用”。这样就可以抑制针对这个模块的”未使用的导入”这条警告:

  1. # 模块:debughelper.nim
  2. when defined(nimHasUsed):
  3. # 'import debughelper' 对于调试来说非常有用,
  4. # 即使这个模块未被使用,也不需要 Nim 输出警告:
  5. {.used.}