代码之家  ›  专栏  ›  技术社区  ›  opensourcegeek

如何以最惯用的方式将选项<&t>转换为选项<&t>?

  •  5
  • opensourcegeek  · 技术社区  · 6 年前

    使用hashmap时 get 方法,我得到一个 Option<&T> ,这次我又遇到了 Option<&String> . 我想要一个自有的价值 Option<String> . 如果我不写信的话可以吗 map(|x| x.to_owned()) ?

    我只是想知道是否有一种方法可以为实现这一点的任何实用特性编写一个通用的实现?

    1 回复  |  直到 6 年前
        1
  •  12
  •   Shepmaster Tim Diekmann    6 年前

    Option 提供各种转换的实用方法,如 its documentation . 对于任何 T 实现 Clone (哪个) String ) Option<&T>::cloned 做你想要的。

    克隆 ToOwned 如此 .cloned() 不是一个 准确的 匹配 .map(|x| x.to_owned()) . 例如,它不会 Option<&str> 变成一个 Option<String> 因为你必须坚持下去 map .


    另请参见: