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

ope*_*eek 7 reference ownership rust

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

我只是想知道是否有办法为任何实用程序特征编写一个实现该实现的毯子实现?

tre*_*tcl 13

Option附带了各种转换的实用方法,这些方法在其文档中列出.对于任何T实现Clone(String确实如此),Option<&T>::cloned你正在寻找什么.

Clone比具体更具体ToOwned,因此.cloned()完全匹配.map(|x| x.to_owned()).例如,它不会Option<&str>成为一个Option<String>; 因为你必须坚持下去map.


也可以看看: