本文主要是介绍[rust-015]关于lifetime生命周期,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考文档:
- 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);
}
所有的引用都必须有一个生命周期。
函数的返回值,要么
这篇关于[rust-015]关于lifetime生命周期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!