gar*_*ary 10 error-handling closures type-inference rust
use std::fs::File;
fn main() {
let tmp = "tmp.zip";
let save_to_tmp_file = || {
let mut tmp_zip = File::create(tmp)?;
Ok(())
};
save_to_tmp_file();
}
Run Code Online (Sandbox Code Playgroud)
(操场)
构建错误:
use std::fs::File;
fn main() {
let tmp = "tmp.zip";
let save_to_tmp_file = || {
let mut tmp_zip = File::create(tmp)?;
Ok(())
};
save_to_tmp_file();
}
Run Code Online (Sandbox Code Playgroud)
您必须指定返回类型:
use std::fs::File;
use std::io;
fn main() {
let tmp = "tmp.zip";
let save_to_tmp_file = || -> Result<(), io::Error> {
let mut tmp_zip = File::create(tmp)?;
Ok(())
};
save_to_tmp_file();
}
Run Code Online (Sandbox Code Playgroud)
关闭有问题。你不能命名闭包的类型;您可以尝试将其减少为FnOnce/ FnMut,但您仍然必须为其提供返回类型。
为了克服您的情况,您可以将 a 指定为 main 函数Result的返回类型。
use std::io;
use std::fs::File;
fn main() -> Result<(), io::Error> {
let tmp = "tmp.zip";
let mut tmp_zip = File::create(tmp)?;
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10986 次 |
| 最近记录: |