考虑以下代码:
use std::fmt::Write;
struct X;
impl std::fmt::Display for X {
fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> {
f.write_char('X')
}
}
fn main() {
let x = X{};
println!("{}", x.to_string());
}
为什么为结构实现Display
会增加调用to_string()
的能力? Display
提供的唯一方法是fmt()
,因此必须有其他内容。