問題一覧に戻る
中級トレイト
問題65: デフォルト実装

トレイトはメソッドのデフォルト実装を提供でき、実装者の負担を軽減します。トレイトを実装する際、デフォルト実装をそのまま使うか、独自の実装でオーバーライドできます。柔軟なインターフェースを作りながら、実装をシンプルに保てます。柔軟性と利便性のバランスを取る強力な機能です。

trait Greet {
// デフォルト実装を持つメソッド
fn hello(&self) -> String {
String::from("Hello!")
}

// 実装必須のメソッド
fn name(&self) -> &str;
}

struct Person {
name: String,
}

impl for Person {
// name()メソッドを実装
fn name(&self) -> &str {

}

// hello()メソッドをオーバーライド
fn hello(&self) -> String {
format!("Hello, I'm {}!", )
}
}

fn main() {
let person = Person {
name: String::from("Alice"),
};

println!("{}", person.hello());
}