如何在给定过程名称作为字符串的情况下调用 proc?
How do I invoke a proc given the procedure name as a string?
假设我们有以下过程:
proc helloWorld() =
echo "Hallo World"
现在,我想调用过程 helloWorld
给定它的字符串名称。
let procName = "helloWorld"
invoke(procName)
这在 Nim 中可行吗?与 Java 反射 API 相比,这可以在编译时完成吗?
是:
import macros
proc helloWorld() =
echo "Hallo World"
macro invoke(name: string): untyped =
return newCall(name.strVal)
invoke("helloWorld")
假设我们有以下过程:
proc helloWorld() =
echo "Hallo World"
现在,我想调用过程 helloWorld
给定它的字符串名称。
let procName = "helloWorld"
invoke(procName)
这在 Nim 中可行吗?与 Java 反射 API 相比,这可以在编译时完成吗?
是:
import macros
proc helloWorld() =
echo "Hallo World"
macro invoke(name: string): untyped =
return newCall(name.strVal)
invoke("helloWorld")