小编jac*_*ang的帖子

当我在结构中使用可变引用而不是不可变引用时,为什么会出现生命周期错误?

这段代码工作正常(Playground):

struct F<'a> {
    x: &'a i32,
}

impl<'a> F<'a> {
    fn get<'b>(&'b self) -> &'a i32 {
        self.x
    }
}

fn main() {
    let x = 3;
    let y = F { x: &x };
    let z = y.get();
}
Run Code Online (Sandbox Code Playgroud)

但是当我x改为成为一个可变引用时(Playground):

struct Foo<'a> {
    x: &'a mut i32,  // <-- `mut` added
}

impl<'a> Foo<'a> {
    fn get(&self) -> &'a i32 {
        self.x
    }
}

fn main() {
    let mut x = 3; …
Run Code Online (Sandbox Code Playgroud)

lifetime rust

2
推荐指数
1
解决办法
289
查看次数

标签 统计

lifetime ×1

rust ×1