【发布时间】:2023-02-04 20:47:03
【问题描述】:
我知道 x.unwrap() 当 x: Result<T, E> 不工作时 E 没有实现 Debug: unwrap() 需要打印出 Err 变体以防 x.is_err() 但它不能。然而,有时,尤其是在测试中,我确实需要获得 Ok 值。我假设 x.expect() 可以解决问题,因为我是指定失败消息的人。然而,出于某种原因我不完全理解,expect() 也需要 E: Debug。这意味着我最终总是采用冗长、重复的方式:
let x_ok = match x {
Ok(x_ok) => x_ok,
Err(_) => panic!("Something went horribly wrong!"),
}
我无法想象这个问题不会有更标准化的解决方案,但我很难找到一个。如果Result 的Err 类型没有实现Debug,如何快速get_ok_or_panic?
【问题讨论】: