【问题标题】:How to convert `Result<T,E>` into `Option<T>`, and return None for any error?如何将 `Result<T,E>` 转换为 `Option<T>`,并在任何错误时返回 None?
【发布时间】:2021-04-15 07:25:58
【问题描述】:

我有一个尝试读取数据库的代码。 get_f64 函数是第三方函数,它读取数据库并返回Result&lt;f64,ValueAccessError&gt; 类型。

如果my_variable 中没有foo 字段,则返回错误。 我需要将其转换为Option&lt;f64&gt;,如果有值,它将返回Some(f64),如果没有/null,则返回None。怎么把Result&lt;T,E&gt;转换成Option&lt;T&gt;,出错返回None?

// this returned Result<f64, ValueAccessError>
let value = my_variable.get_f64("foo");

// but I need Option<f64>

【问题讨论】:

    标签: rust


    【解决方案1】:

    您可以使用Result::ok()Result 转换为Option

    let value = my_variable.get_f64("foo").ok();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 2020-03-15
      • 2014-03-24
      • 1970-01-01
      相关资源
      最近更新 更多