在主要回归是否可以?

Syn*_*ose 3 rust

由于电源返回类型是一个空的元组(),是它认为一个变通使用return;fn main()?我想结束我的计划,但不想panic!,我只想冷静地结束.有没有一种标准的方法来尽早结束主要?或者这样做可以吗?我来自一个C++背景,如果你需要从一个不返回任何值的函数提前返回,你可能不应该使用a void开头,所以我想知道这是否是相同的情况没有返回类型为main()

fn main() {
    // ...

    // if no cline args display usage and end
    if matches.free.is_empty() {
        print_usage(&program, options);
        return;

    // program continues
}
Run Code Online (Sandbox Code Playgroud)

huo*_*uon 6

在语言层面完全可以像这样提早返回.在这种情况下,您可能也喜欢该std::process::exit函数,它还允许设置进程的返回码.

  • @WiSaGaN:"请注意,因为此函数永远不会返回,并且它终止进程,所以不会运行当前堆栈或任何其他线程堆栈上的析构函数.如果需要干净关闭,建议只在没有更多析构函数运行的已知点调用此函数." (4认同)
  • 有什么理由我们不能像往常一样简单地从main返回错误代码?`std :: process :: exit`看起来很麻烦. (3认同)
  • 当你使用`std :: process :: exit`时,是否会调用析构函数? (2认同)