// dictionary
トレイト(Trait).
トレイト(Trait)
トレイトは、Rustにおけるインターフェースのような概念です。複数の型で共有される機能を定義し、異なる型に同じ振る舞いを実装させることができます。
トレイトの定義と実装
trait Drawable {
fn draw(&self);
}
struct Circle {
radius: f64,
}
impl Drawable for Circle {
fn draw(&self) {
println!("Drawing circle with radius {}", self.radius);
}
}
トレイト境界
fn print_drawable<T: Drawable>(item: T) {
item.draw();
}
fn print_multiple<T>(items: Vec<T>) where T: Drawable {
for item in items {
item.draw();
}
}
トレイトオブジェクト
動的ディスパッチを使う場合、トレイトオブジェクト dyn Trait を使用します:
fn print_any(item: &dyn Drawable) {
item.draw();
}この方法は柔軟ですが、パフォーマンスオーバーヘッドがあります。
デフォルト実装
trait Animal {
fn name(&self) -> &str;
fn speak(&self) {
println!("{} makes a sound", self.name());
}
}
詳細はジェネリクス(Generics)を参照してください。
この辞書が使われているページ
backlinks 3