特征定义与实现 #
一、定义特征 #
rust
pub trait Summary {
fn summarize(&self) -> String;
// 默认实现
fn default_summary(&self) -> String {
String::from("默认摘要")
}
}
二、实现特征 #
rust
pub struct NewsArticle {
pub headline: String,
pub content: String,
}
impl Summary for NewsArticle {
fn summarize(&self) -> String {
format!("{}: {}", self.headline, self.content)
}
}
pub struct Tweet {
pub username: String,
pub content: String,
}
impl Summary for Tweet {
fn summarize(&self) -> String {
format!("@{}: {}", self.username, self.content)
}
}
三、特征作为参数 #
rust
pub fn notify(item: &impl Summary) {
println!("突发新闻! {}", item.summarize());
}
// 或使用 trait bound
pub fn notify2<T: Summary>(item: &T) {
println!("突发新闻! {}", item.summarize());
}
四、总结 #
本章学习了:
- 特征定义
- 特征实现
- 默认实现
- 特征作为参数
最后更新:2026-03-27