MST

星途 面试题库

面试题:Rust中std::fmt traits自定义格式化之复杂场景

假设有一个结构体`Matrix`,它表示一个二维矩阵,包含一个`Vec<Vec<i32>>`类型的字段来存储矩阵数据。请实现`std::fmt::Debug` trait,使得在调试输出时,矩阵能够以行列对齐的形式输出,每一行占据独立的一行,元素之间用空格分隔。例如,对于矩阵`[[1, 2], [3, 4]]`,输出应为: ``` 1 2 3 4 ```
43.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
use std::fmt;

struct Matrix {
    data: Vec<Vec<i32>>,
}

impl fmt::Debug for Matrix {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        for row in &self.data {
            for (i, num) in row.iter().enumerate() {
                if i > 0 {
                    write!(f, " ")?;
                }
                write!(f, "{}", num)?;
            }
            writeln!(f)?;
        }
        Ok(())
    }
}