首页 > 解决方案 > 在 Rust 构造函数中取得所有权并借用

问题描述

在那里,我对生锈还是很陌生。我遇到了一个问题,我需要获得一个变量的所有权,同时创建一个不同的变量,借用新拥有的变量。有没有一种优雅的方式来做这样的事情?

struct Object<'a> {
    owned: SecondObject,
    borrowed: Wrapper<&'a SecondObject>
}

impl<'a> Object<'a> {
    pub fn new(second: SecondObject) -> Object<'a> {
        Object {
            owned: second,
            borrowed: Wrapper::new(&second); // This line breaks 
        }
    }
}

我想我尝试了所有我能想到的变体,但实际移动总是先完成,所以我无法获得引用,或者有对原始变量的引用,所以它根本无法移动。owned当然,在它实际创建之前我不能参考。

感谢您提供任何提示,如果这可以实现,或者是否有不同的方法可以使这项工作。

标签: rustownership

解决方案


推荐阅读