我有一个在Option
中的数字。我需要用它和另外一个值的最大值来替换它,如果我的数字是None
,那么就使用那个其他的值。
我写了一个函数来实现这个功能:
fn max(a: Option<u32>, b: u32) -> Option<u32> {
if a.is_some() {
Some(std::cmp::max(a.unwrap(), b))
} else {
Some(b)
}
}
但我一直在想,是否有更好、更简洁的方法可以使用 Option 的方法实现。你能帮忙吗?
max(a.unwrap_or(0), b)
。(如果您想将代码未来防止类型更改为i32
,还可以使用u32::MIN
。) - user4815162342