相关疑难解决方法(0)

我什么时候应该实现std :: convert :: From vs std :: convert :: Into?

我看到它std::convert::Into有一个实现任何实现的东西std::convert::From:

impl<T, U> Into<U> for T where U: From<T>
Run Code Online (Sandbox Code Playgroud)

有更具体的实现From,虽然Into目前只有3个特定的实现,这使得它似乎是From默认实现的主流决定.我确信有些时候我只想实现Into而不是From,但我没有看到它们.

rust

33
推荐指数
1
解决办法
5034
查看次数

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

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

optional rust rust-2018

0
推荐指数
1
解决办法
598
查看次数

标签 统计

rust ×2

optional ×1

rust-2018 ×1