繁体   English   中英

如何克隆 Rust 中的 Rc 选项?

[英]How to clone an Option of Rc in Rust?

假设我有一个 Rc 选项:

let x = Some(Rc::new(3));

如果我需要克隆,我可以这样做:

let y = Some(Rc::clone(&x.unwrap()));

但似乎也有一条捷径:

let y = x.clone();

这些选项之间有什么区别吗? 或者他们在内部做同样的事情。 Rust 新手在这里,感谢您的澄清。

有一个通用的实现

impl<T: Clone> Clone for Option<T> {
    #[inline]
    fn clone(&self) -> Self {
        match self {
            Some(x) => Some(x.clone()),
            None => None,
        }
    }
    // ...
}

因此,如果xOption<Rc<T>>x.clone()将简单地遵循Rc<T>上的Clone实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM