在Rust中,主要功能的定义如下:
fn main() {
}
但是,此函数不允许返回值。为什么一种语言不允许返回值,并且仍然有一种方法可以返回任何值?我是否可以安全地使用Cexit(int)
函数,否则会导致泄漏吗?
从Rust 1.26开始,main
可以返回Result
:
use std::fs::File;
fn main() -> Result<(), std::io::Error> {
let f = File::open("bar.txt")?;
Ok(())
}
如果发生错误,在这种情况下返回的错误代码为1。与File::open("bar.txt").expect("file not found");
代替,则返回101的误差值(至少我的机器上)。
另外,如果要返回更通用的错误,请使用:
use std::error::Error;
...
fn main() -> Result<(), Box<dyn Error>> {
...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句