Rust中有比赛的速记形式吗?

时间:2018-05-25 07:00:12

标签: rust

Rust中的许多函数调用返回类型为std::result::Result的枚举。具有这样的返回类型具有优点,但是编写匹配器看起来对于小任务来说是乏味的。

例如,我试图找到我的代码的某个部分所花费的时间。我尝试SystemTime::now()加上duration()

let now = SystemTime::now();

let result = cvar
    .wait_timeout(started, Duration::from_millis(20000))
    .unwrap();
started = result.0;
if *started == false {
    *started = true;
}
println!("Thread 1 :: Exiting...after {:?}s ", now.elapsed().unwrap());

这给了我一个

形状的输出
Thread 1 :: Exiting...after Duration { secs: 6, nanos: 999860814 }s

我知道我可以使用与docs中的方式类似的匹配方式获得所需的结果:

match now.elapsed() {
    Ok(elapsed) => {
        println!("{}", elapsed.as_secs());
    }
    Err(e) => {
        println!("Error: {:?}", e);
    }
}

这将是一些额外的行,它们并不真正有助于应用程序逻辑。

是否没有进行这种比赛操作的简写?

0 个答案:

没有答案