我想在 main 函数中打印Tweet数据类型的实例,但摘要特征不实现调试特征。有没有办法在 trait 上实现 trait 或任何解决方法。取消注释第二行并注释第一行将起作用,因为 String 类型实现了 Display 特征。
#[derive(Debug)]
struct Tweet {
name: String,
}
pub trait Summary {
fn summarize(&self) -> String;
}
impl Summary for Tweet {
fn summarize(&self) -> String {
format!("@{}", &self.name)
}
}
fn summarizeable(x: String) -> impl Summary {
Tweet { name: x }
}
fn main() {
//1.
println!("{:#?}", summarizeable(String::from("Alex")));
//2.println!("{}",summarizeable(String::from("Alex")).summarize());
}
错误[E0277]:
impl Summary
没有实现std::fmt::Debug
--> src/main.rs:26:29 | 26 | /1./println!("{:#?}",summarizeable(String::from("Alex " ))); |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^impl Summary
无法格式化使用{:?}
,因为它没有实现std::fmt::Debug
| =帮助:该特征std::fmt::Debug
未实现impl Summary
=注意:需要std::fmt::Debug::fmt
错误:由于先前的错误而中止
有关此错误的更多信息,请尝试
rustc --explain E0277
. 错误:无法编译p1
。要了解更多信息,请使用 --verbose 再次运行该命令。