Rust 中自我的生命周期

问题描述 投票:0回答:1

我有一个这样的结构:

struct Foo {
    big_stuff: BigStuff,
    inner_ref: &'??? Bar,
}

我的意图是

inner_ref
将指向
big_stuff
内的某个位置,因此
inner_ref
的生命周期应该与对象本身的生命周期相同。我该如何表达这一点,即应该用什么来代替
???

rust reference lifetime
1个回答
0
投票

要使

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 }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.