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);
}
}
这将是一些额外的行,它们并不真正有助于应用程序逻辑。
是否没有进行这种比赛操作的简写?