返回Rc中的结构成员<refcell <foo <t>&gt;&gt;借

时间:2016-04-15 13:38:38

标签: rust

编辑:不重复。请阅读整篇文章。

说我有一个结构Foo<T>

struct Foo<T> {
  data: T
}

由与Rc<RefCell<Foo<T>>>类型的对象一起使用的实现使用。我需要返回对Foo<T>

内部数据的引用
fn get(&self, some_arg) -> &T {
  // ... some code ...
  // foo is of type Rc<RefCell<Foo<T>>>
  &foo.borrow().data  // this doesn't work
}

Ref<'b, T>返回的foo.borrow()仅对get()的范围有效,因此编译器会抱怨。我希望能够做到这一点:

// bar has the get() method above
let val = bar.get(some_arg);  // bind val to a &T
// do stuff with val

我该怎么做?

编辑:我已经阅读了所有可能相关的其他SO帖子。这不是重复的。 Shepmaster建议的其他帖子都有不同的类型(不是Rc<RefCell<Foo<T>>>):1)Rc中没有Foo - 包裹的成员。 2)在第二个&#34;重复&#34;中甚至没有RefCell用法。交。

0 个答案:

没有答案