MST

星途 面试题库

面试题:Rust中format!宏结合自定义trait的复杂格式化应用

定义一个自定义trait `ComplexFormat`,它有一个方法 `format_complex` 用于将实现该trait的类型进行复杂格式化。假设有一个自定义结构体 `struct ComplexData { inner_data: Vec<(i32, f64, String)> }`,实现 `ComplexFormat` trait,在 `format_complex` 方法中使用 `format!` 宏将 `inner_data` 中的每一个三元组格式化为 `(整数: [具体整数], 浮点数: [具体浮点数], 字符串: [具体字符串])`,并把所有格式化后的子字符串用分号分隔,最终返回这个格式化后的复杂字符串。
18.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
trait ComplexFormat {
    fn format_complex(&self) -> String;
}

struct ComplexData {
    inner_data: Vec<(i32, f64, String)>,
}

impl ComplexFormat for ComplexData {
    fn format_complex(&self) -> String {
        self.inner_data.iter()
            .map(|(int, float, string)| format!(r#"(整数: [{}], 浮点数: [{}], 字符串: [{}])"#, int, float, string))
            .collect::<Vec<String>>()
            .join(";")
    }
}