如何打印结构体和数组?如何漂亮地打印一个rust结构或任何数据类型?
当然,可以编写自定义的Debug方法。但是有没有什么方法可以默认启用打印呢?
一个选项是使用:https://docs.rs/pretty-trait/latest/pretty_trait/
当你实现Debug
时,Rust提供了"漂亮的打印";用{:#?}
。来自std::fmt
文档:
#
-该标志表明应该使用"替代"形式的打印。可供选择的形式有:
{:#?}
-打印Debug
格式(添加换行和缩进)- (其他人省略)
的例子:
#[derive(Debug)]
struct Person {
name: &'static str,
age: u8,
hobbies: Vec<&'static str>,
}
fn main() {
let peter = Person {
name: "Jesse",
age: 49,
hobbies: vec!["crosswords", "sudoku"],
};
println!("{:#?}", peter);
}
输出:
Person {
name: "Jesse",
age: 49,
hobbies: [
"crosswords",
"sudoku",
],
}
游乐场