如何转换选项中的内部值?

ber*_*kes 0 optional rust rust-2018

我有一个Option包含一些 JSON 的。如果是Some,则必须转换内部 JSON,但如果是None,则必须保留None

这就是我目前实施的方式:

struct One;
struct Other;

impl One {
    pub fn convert(&self) -> Other {
        Other {}
    }
}

fn example(attr: Option<One>) -> Option<Other> {
    match attr {
        Some(attr) => Some(attr.convert()),
        None => None,
    }
}
Run Code Online (Sandbox Code Playgroud)

我是新来的锈和不完全获得时使用的复杂性matchif let或时使用的?运营商。

我的实现是 Rust 惯用的吗?对我来说似乎比较冗长,而且看起来像一个到处都会出现的模式,所以我可以想象这可以更简洁地处理;是这样吗?

归档时间:

查看次数:

598 次

最近记录:

5 年,4 月 前