在Rust书籍的“生命周期”章节中,有一个例子:
struct Foo<'a> {
x: &'a i32,
}
fn main() {
let y = &5; // this is the same as `let _y = 5; let y = &_y;`
let f = Foo { x: y };
println!("{}", f.x);
}
为什么要使用x: &'a i32
?
我认为,如果只是x: i32
,就不能展示生命周期的使用。不过,还有其他原因吗?有没有生产代码使用不可变引用指向像i32这样的原始类型?