gpt4 book ai didi

rust - 返回 self 生命周期的引用

转载 作者:行者123 更新时间:2023-11-29 07:51:53 24 4
gpt4 key购买 nike

我想编写如下代码:

struct Foo {
foo: usize
}

impl Foo {
pub fn get_foo<'a>(&'a self) -> &'self usize {
&self.foo
}
}

但这行不通,失败并显示 invalid lifetime name: 'self is not longer a special lifetime

如何返回与对象本身一样长的引用?

最佳答案

您不希望引用与对象一样长。您只想a 借用对象(很可能比对象的整个生命周期短),并且您希望生成的引用具有该借用的生命周期。是这样写的:

pub fn get_foo<'a>(&'a self) -> &'a usize {
&self.foo
}

此外,生命周期省略使签名更漂亮:

pub fn get_foo(&self) -> &usize {
&self.foo
}

关于rust - 返回 self 生命周期的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com