让我们假设我们有以下程序:
proc helloWorld() =
echo "Hallo World"
现在,我想调用名为字符串的过程helloWorld
。
let procName = "helloWorld"
invoke(procName)
Nim有可能这样吗?与Java Reflection API相比,这可以在编译时完成吗?
答案 0 :(得分:2)
是:
import macros
proc helloWorld() =
echo "Hallo World"
macro invoke(name: string): untyped =
return newCall(name.strVal)
invoke("helloWorld")