为什么Result<()>在编译这部分Rust代码时不被允许?Rust版本之间是否有重大变化?
fn run() -> Result<()> {
let (tx, rx) = channel();
thread::spawn(move || {
do_things_with_tx(&exit_tx);
});
match exit_rx.recv() {
Ok(result) => if let Err(reason) = result {
return Err(reason);
},
Err(e) => {
return Err(e.into());
},
}
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
编译器说:
error[E0107]: wrong number of type arguments: expected 2, found 1
--> src/main.rs:1000:18
|
1000 | fn run_wifi() -> Result<()> {
| ^^^^^^^^^^ expected 2 type arguments
Run Code Online (Sandbox Code Playgroud)
当我将返回类型调整为时Result<(), Err>,它说:
error[E0107]: wrong number of type arguments: expected 2, …Run Code Online (Sandbox Code Playgroud)