转载自集体网站:http://humblelei.com/posts/de…
在编写上面这段简短的代码时:
fn main() {
let student = Student{name: "李寻欢".to_string()
};
println!("{:?}", student);
}
struct Student{name: String}
我遇到一些谬误:
error[E0277]: `Student` doesn't implement `Debug`
--> src\main.rs:6:22
|
6 | println!("{:?}", student);
| ^^^^^^^ `Student` cannot be formatted using `{:?}`
侥幸的是,rust 给了解决这个问题的一些提醒:
= help: the trait `Debug` is not implemented for `Student`
= note: add `#[derive(Debug)]` to `Student` or manually `impl Debug for Student`
最简略的是把 #[derive(Debug)]增加到 Student
构造上:
#[derive(Debug)]
struct Student{name: String}
或者参考提醒来手动实现 std::fmt::Debug
个性:
use std::fmt::{Debug, Formatter, Result};
struct Student{name: String}
impl Debug for Student {fn fmt(&self, f: &mut Formatter<'_>) -> Result {f.debug_struct("Student")
.field("name", &self.name)
.finish()}
}
别离测试了两种形式,能够失常打印构造。