参考文档:
- https://doc.rust-lang.org/book/ch10-03-lifetime-syntax.html
- https://doc.rust-lang.org/rust-by-example/scope/lifetime.html
lifetime,生命周期。rust把生命周期提到了语法糖的层面,解决引用-借用问题。
lifetime机制,确保解决所有的borrow借用是有效的。
lifetime和scope有关联,但有差别。
例1,最简单的用法:
//'a 表示一个生命周期,'b也类似
//'a 表示,函数print_refs的生命周期不超过'a,同理,'b也类似。
//也就是说,生命周期'a超过函数print_refs,同理, 'b也是
fn print_refs<'a, 'b>(x: &'a i32, y: &'b i32) {
println!("x is {} and y is {}", &x, &y);
}
fn main() {
let x = 1;
let y = 2;
print_refs(&x, &y);
}
所有的引用都必须有一个生命周期。
函数的返回值,要么