在Rust书的Lifetimes一章中,有一个例子:
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等基本类型的不可变引用?