如何以编程方式获取 nim 编译器版本?

How to obtain the nim compiler version programmatically ?

是否有任何常量变量或 proc 允许以字符串或数字的形式访问编译器版本?

The version can be obtained as a string 通过 system.NimVersion(记住 system 是隐式导入的):

echo NimVersion # 0.18.0

You can also access its component parts (MAJOR.MINOR.PATCH) 像这样的数字:

echo NimMajor # 0
echo NimMinor # 18
echo NimPatch # 0

这使得在与元组结合使用时检查版本的兼容性变得非常容易:

when (NimMajor, NimMinor, NimPatch) >= (0, 19, 0):
  echo "we're on at least Nim v0.19.0"