Rust 如何返回RefCell值的refenrece
我正在使用双链表学习生锈。Rust 如何返回RefCell值的refenrece,rust,Rust,我正在使用双链表学习生锈。 要获取双链接列表值, 我想返回对值的引用 如果我只返回值,我可以。 但若我这样做,列表值必须实现Clonetrait… 我该怎么办 这是我的示例代码 使用std::rc::rc; 使用std::cell::RefCell; 结构人{ 年龄:Rc,, } 默示人{ fn获取字符串&a i32{ //实际执行while循环,直到达到指定的索引 让person_age=*self.age.borrow_mut(); //我想返回对i32的引用 &个人年龄 } } fn ma
要获取双链接列表值,
我想返回对值的引用 如果我只返回值,我可以。
但若我这样做,列表值必须实现
Clone
trait…我该怎么办 这是我的示例代码
使用std::rc::rc;
使用std::cell::RefCell;
结构人{
年龄:Rc,,
}
默示人{
fn获取字符串&a i32{
//实际执行while循环,直到达到指定的索引
让person_age=*self.age.borrow_mut();
//我想返回对i32的引用
&个人年龄
}
}
fn main(){
设age=Rc::new(RefCell::new(10));
让person=person{age:Rc::clone(&age)};
println!(“人名为{}”,person.get_string());
}
您应该返回Ref
作为
fn获取字符串(&self)->Ref{
返回self.age.borrow_mut()
}
除了实现Drop之外,它的行为应该或多或少类似于reference。它用于RefCell而不是引用,因为它可以维护RefCell不变量,所以在使用RefCell时,您应该使用它。非常感谢!
fn get_string(&self) -> Ref<i32>{
return self.age.borrow_mut()
}