特征定义与实现 #

一、定义特征 #

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