【发布时间】:2021-10-01 19:05:38
【问题描述】:
我正在编写一个需要做两件事的函数:
- 将值写入枚举
- 将引用返回到刚刚写入的值中
这是我写的:
enum State {
Asleep,
Awake { deeds: Vec<String> }
}
impl State {
fn wake_up(&mut self) -> &mut Vec<String> {
*self = Self::Awake { deeds: vec![] };
match self {
Self::Awake { deeds } => deeds,
_ => unreachable!("WTF, how are we not awake!?")
}
}
}
unreachable! 的使用似乎不太优雅。有没有办法编写这个函数来避免处理(显然)不可能的情况?
【问题讨论】: