問題一覧に戻る
中級トレイト
問題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());
}