問題一覧に戻る
中級トレイト
問題63: トレイトの定義
トレイトは共通の振る舞いを定義するインターフェースです。traitキーワードで定義し、メソッドシグネチャを含みます。デフォルト実装を提供でき、実装者の負担を軽減します。ポリモーフィズムを実現し、柔軟で再利用可能なコードを書けます。
// トレイト定義
Summary {
fn summarize(&) -> String;
}
// デフォルト実装
trait Display {
fn show(&self) -> String {
String::from("Default display")
}
}
struct Article {
title: String,
content: String,
}
// トレイト実装
Summary Article {
fn summarize(&self) -> {
format!("{}: {}...", self.title, &self.content[..20])
}
}