静态实参

静态实参是向宏传递值而不是语法树的方法。例如对于 macro foo(arg: static[int]) 来说, foo(x) 表达式中的 x 需要是整型常量, 但在宏体中 arg 只是一个普通的 int 类型。

  1. import macros
  2.  
  3. macro myMacro(arg: static[int]): untyped =
  4. echo arg # 只是int (7), 不是 ``NimNode``
  5.  
  6. myMacro(1 + 2 * 3)