Error: identifier expected, but got: paramStr(1)

Error: identifier expected, but got: paramStr(1)

所以,我有这个代码:

import std/os
import system/io
echo paramStr(1)
if declared(paramStr(1)) == true:
    echo It exists
else:
    echo It doesn't exists

然后在我编译时发生了这个错误:

Error: identifier expected, but got: paramStr(1)

不知道是什么原因,可能是paramStr的类型?

您使用的 declared 有误。它用于检查是否已声明某些标识符。例如

import os

when declared(paramStr):
  echo true

回显 true,因为 paramStr 已在 os 中声明。删除 import os 行,它回显 false(不抛出 import error)。

如果你想检查你是否有 paramStr(1),你可以用 if paramCount() > 0 代替。

此外,您不需要导入 systemsystem/io,因为它们会自动包含在您的程序中。

如果您发现自己在编写复杂的命令行代码,请查看电池中包含的 parseopt,或 http://nimble.directory

中的 docopt 包装器