如何在 Nim 中编译时回显/打印?



在处理编译时功能时,最好在编译时echo一些东西。如果echo位于宏中,则已在编译时执行。但是,是否也可以在编译时打印某些内容,例如从全局范围打印内容?我正在寻找像echoStatic这样的函数:

echoStatic "Compiling 1. set of macros..."
# some macro definitions
echoStatic "Compiling 2. set of macros..."
# more macro definitions

不需要特殊的echoStatic。这是通过在编译时运行代码的一般解决方案来解决的,即使用static块:

static:
echo "Compiling 1. set of macros..."
# some macro definitions
static:
echo "Compiling 2. set of macros..."
# more macro definitions

在 C、C++ 和 D 等语言中,通常可以使用编译指示来完成此作业。这也适用于 Nim:

from strformat import `&`
const x = 3
{. hint: &"{$typeof(x)} x = {x}" .}  # <file location> Hint: int x = 3

它还打印文件、行和列,这对于编译时调试很有用。

最新更新