我有一个这样的结构:
struct Foo {
big_stuff: BigStuff,
inner_ref: &'??? Bar,
}
我的意图是
inner_ref
将指向big_stuff
内的某个位置,因此inner_ref
的生命周期应该与对象本身的生命周期相同。我该如何表达这一点,即应该用什么来代替 ???
?
要使
inner_ref
指向 big_stuff
内的数据并匹配 Foo
的生命周期,请使用生命周期参数:
struct Foo<'a> {
big_stuff: BigStuff,
inner_ref: &'a Bar,
}
然后,使用
Foo
引用 inner_ref
:创建
big_stuff
impl<'a> Foo<'a> {
fn new(big_stuff: BigStuff) -> Foo<'a> {
let inner_ref = big_stuff.get_bar(); // Assuming `get_bar` returns `&Bar`
Foo { big_stuff, inner_ref }
}
}