我怎么能“崩溃”嵌套的`if let`语句,它们在`else`子句中都运行相同的代码?

问题描述 投票:0回答:1

这是一个简单的例子:

if let Some(x) = y {
    if let Some(t) = u {
        do_thing = false;
    } else {
        do_thing = true;
    }
} else {
    do_thing = true;
}

我认为你可能会有......

if let Some(x) = y && let Some(t) = u {
    do_thing = false;
} else {
    do_thing = true;
}

......但这似乎不起作用。有一个干净的解决方案吗?

rust
1个回答
4
投票
if let (Some(x), Some(t)) = (y, u) {
    do_thing = false;
} else {
    do_thing = true;
}

如果你不需要值,那么你可以写

if y.is_some() && u.is_some() { ... }
© www.soinside.com 2019 - 2024. All rights reserved.