You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除这段Rust代码中的else分支?

移除else分支的两种方法

方法一:使用matches!宏直接判断

通过matches!宏检查错误是否不属于CustomEnum::NotFound变体,若是则直接返回错误,无需else分支:

if let Err(err) = something.command(name).await {
    if !matches!(err, CustomEnum::NotFound(_)) {
        return Err(err);
    }
}

方法二:反向匹配if let

也可以通过两次if let分别匹配需要忽略的错误和需要返回的错误,同样避免else分支:

if let Err(err @ CustomEnum::NotFound(_)) = something.command(name).await {
    // 忽略该错误,无需处理
} else if let Err(err) = something.command(name).await {
    return Err(err);
}

第一种方法更简洁,仅需一次异步调用,推荐使用。

内容的提问来源于stack exchange,提问作者Fred Hors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:06:59