如何将过程名称作为字符串调用proc?

时间:2017-03-11 09:34:26

标签: reflection nim

让我们假设我们有以下程序:

proc helloWorld() =
    echo "Hallo World"

现在,我想调用名为字符串的过程helloWorld

let procName = "helloWorld"
invoke(procName)

Nim有可能这样吗?与Java Reflection API相比,这可以在编译时完成吗?

1 个答案:

答案 0 :(得分:2)

是:

import macros

proc helloWorld() =
  echo "Hallo World"

macro invoke(name: string): untyped =
  return newCall(name.strVal)

invoke("helloWorld")