MST

星途 面试题库

面试题:Rust结构体生命周期初始化基础

假设有如下Rust代码: ```rust struct User<'a> { name: &'a str, age: u32 } fn main() { let name = String::from("Alice"); // 请在这里正确初始化User结构体实例 } ``` 请补全代码,正确初始化 `User` 结构体实例,并解释这里生命周期参数 `'a` 的作用。
22.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

补全后的代码如下:

struct User<'a> {
    name: &'a str,
    age: u32
}
fn main() {
    let name = String::from("Alice");
    let user = User {
        name: &name,
        age: 30
    };
}

这里生命周期参数 'a 的作用:它指定了结构体 Username 字段所引用数据的生命周期。也就是说,User 实例的生命周期不能长于 name 所引用数据的生命周期。这确保了在 User 实例存在期间,name 引用的数据是有效的,防止出现悬空引用等内存安全问题。