Building over the comments of @FrancisGagné 's answer, if you are searching for an equivalent of C's return exit_code
, you can artificially build it this way:
fn main() {
let exit_code = real_main();
std::process::exit(exit_code);
}
fn real_main() -> i32 {
// the real program here
}
This way, all the objects of your program will be in the scope of the real_main()
function, and you can safely use return exit_code;
in main
while still having all destructors properly run.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…