MST
星途 面试题库

面试题:Rust泛型结构体与生命周期关联

定义一个泛型结构体`Wrapper`,它包含一个泛型类型的成员变量。同时这个结构体需要关联一个生命周期参数。编写一个方法,该方法接受一个相同生命周期的引用,并返回这个引用和结构体成员变量的某种组合(例如拼接字符串,如果成员变量是字符串类型)。请写出完整的结构体和方法定义,并给出使用示例。
27.8万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义泛型结构体Wrapper,关联生命周期参数 'a
struct Wrapper<'a, T> {
    value: T,
}

// 为Wrapper结构体实现方法
impl<'a, T> Wrapper<'a, T> {
    // 定义方法,接受相同生命周期的引用,并返回引用和成员变量的组合
    fn combine(&self, other: &'a T) -> String
    where
        T: std::fmt::Display,
    {
        format!("{}{}", self.value.to_string(), other.to_string())
    }
}

fn main() {
    let wrapper = Wrapper {
        value: "Hello, ".to_string(),
    };
    let other_str = "world!".to_string();
    let result = wrapper.combine(&other_str);
    println!("{}", result);
}