MST

星途 面试题库

面试题:Rust结构体的生命周期与借用

定义两个结构体`Person`和`Company`,`Person`有`name`(字符串切片)和`company`(`Company`结构体的引用)字段。`Company`有`name`(字符串切片)字段。实现一个函数,该函数接收`Person`和`Company`实例的可变引用,能够修改`Person`的公司名称,使其与传入的`Company`名称一致,并确保代码在生命周期方面是正确无误的。请写出完整代码。
17.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Person<'a> {
    name: String,
    company: &'a mut Company,
}

struct Company {
    name: String,
}

fn change_company_name(person: &mut Person<'_>, new_company: &mut Company) {
    person.company = new_company;
    person.company.name = new_company.name.clone();
}