一般社団法人 全国個人事業主支援協会

COLUMN コラム

Rustの型での共通のふるまいを定義できる機能。他言語のインターフェースに近い。
定義としては以下
pub trait Hoge {
    fn hogehoge(&self) -> String;
}
上記トレイトを実装するとこのような形になる
pub struct Fuga {}
impl Hoge for Fuga {
    fn hogehoge(&self) {}
}
トレイトは実装する際には、トレイトもしくは、実装対象の型をローカル内で行わなければいけない。
インターフェースや抽象メソッドとは違い、デフォルト実装を組み込むことが出来る。
pub trait Hoge {
    fn hogehoge(&self) {
        println!("hogehoge")
    }
}
抽象メソッドやインターフェースを受け付けるように、トレイトを受け付けるシグニチャを定義することも可能。
pub fn piyo(hoge: &impl Hoge) {
    println!("piyo");
}
The following two tabs change content below.

WATANABE REN

千葉県在住のエンジニアです。最近はPythonやってます。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア