相关疑难解决方法(0)

Rust:fn foo()-> Result <()>抛出“期望的2个类型参数”

为什么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)

error-handling rust

6
推荐指数
2
解决办法
2519
查看次数

标签 统计

error-handling ×1

rust ×1