代码点读机 / Rust / 生命周期

生命周期 Rust · 通用兜底

生命周期标注,给引用指定有效范围,确保引用不会指向已释放的数据。

怎么用

'a, fn f<'a>(x: &'a T) -> &'a T

小例子

fn 最长<'a>(x: &'a str, y: &'a str) -> &'a str {
    if x.len() > y.len() { x } else { y }
}
println!("{}", 最长("hi", "hello"));

运行结果

hello

提醒:生命周期只在引用相关时出现;很多时候编译器能自动推断

官方文档:https://doc.rust-lang.org/reference/lifetime-elision.html

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条