Progrust Library.

// 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

  1. 辞書Derive マクロ
  2. 辞書イテレータ
  3. 辞書ジェネリクス(Generics)