gpt4 book ai didi

reference - 如何在 Rust 中以最惯用的方式将 Option<&T> 转换为 Option

转载 作者:行者123 更新时间:2023-11-29 07:46:03 24 4
gpt4 key购买 nike

当使用 HashMap 的 get 时方法,我得到一个 Option<&T> ,我这次又遇到了Option<&String> .我想获得一个拥有的值(value) Option<String> .没有我写这可能吗 map(|x| x.to_owned())

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

最佳答案

Option带有用于各种转换的实用方法,这些方法在 its documentation 中列出。 .对于任何 T实现 Clone (String 做的), Option<&T>::cloned 做你正在寻找的东西。

CloneToOwned 更具体, 所以 .cloned()不是 .map(|x| x.to_owned())精确匹配.例如,它不会变成 Option<&str>进入 Option<String> ;为此你必须坚持map .

自 Rust 1.35 起,当 TCopy , .copied() .cloned() 做同样的事情, 但当 T 时编译失败不是 Copy .当您想明确表示克隆很便宜时,您可以使用它。


另见:

关于reference - 如何在 Rust 中以最惯用的方式将 Option<&T> 转换为 Option<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com