面试题答案
一键面试补全后的代码如下:
struct User<'a> {
name: &'a str,
age: u32
}
fn main() {
let name = String::from("Alice");
let user = User {
name: &name,
age: 30
};
}
这里生命周期参数 'a
的作用:它指定了结构体 User
中 name
字段所引用数据的生命周期。也就是说,User
实例的生命周期不能长于 name
所引用数据的生命周期。这确保了在 User
实例存在期间,name
引用的数据是有效的,防止出现悬空引用等内存安全问题。