如何从 Nim 的主块返回退出代码?

Posted

技术标签:

【中文标题】如何从 Nim 的主块返回退出代码?【英文标题】:How to return an exit code from the main block in Nim? 【发布时间】:2019-01-27 16:45:06 【问题描述】:

在 Nim 中,要编写作为一种 main 函数执行的代码,您需要这样做(类似于 Python 中的 is main 检查):

when isMainModule:
    echo ("Hello, Nim!")

但是,在我的一生中,我无法弄清楚如何返回错误代码。传统上一直有一个选项可以让主函数返回int,但由于这实际上不在proc 中,因此您似乎不能return;我唯一想出的办法是raise 一个例外。当然有一种方法可以控制您的退出代码是否为零?

【问题讨论】:

【参考方案1】:

我认为system.quit 可能是您正在寻找的。根据Nim docs:

proc quit(errorcode: int = QuitSuccess) ..

使用退出代码立即停止程序。

proc quit(QuitSuccess) 被隐式调用,当你的 nim 程序完成时,对于这是预期行为的平台没有意外。引发的未处理异常等同于调用quit(QuitFailure)

【讨论】:

谢谢,我猜 Googlefu 完全失败了!无论如何,这在最后被隐式调用的事实证实了这个答案是正确的。

以上是关于如何从 Nim 的主块返回退出代码?的主要内容,如果未能解决你的问题,请参考以下文章

主从块

从C中的主函数返回与退出[重复]

text 如何使用`.C`接口从R调用Nim代码

如何从 Nim 的导入失败中恢复?

仅在非交互式运行时如何从 Powershell 脚本返回退出代码

python定义主块之前/之后的变量差