ヤルキデナイズド

Unclassified Articles on Software and IT

Rust 言語のインターフェース

追記:以下の記述は古くなっている。インターフェースはすでに言語から取り除かれた。

Rust 言語のインターフェースは、ある型の値に適用できる関数のセットを定義するもの。

iface prettifier {
    fn to_pretty_str() -> str;
}

ある型についてインターフェースを実装すると、その型の値 value に対して value.some_func() という構文で関数を呼び出せる。関数内では、 valueself として参照できる。

impl of prettifier for uint {
    fn to_pretty_str() -> str { #fmt("unsigned int %u", self) }
}

impl of to_str for int {
    fn to_pretty_str() -> str { #fmt("int %d", self) }
}

use std;

fn main(_args: [str]) {
    std::io::println(42u.to_pretty_str());   // => unsigned int 42
    std::io::println((-42).to_pretty_str()); // => int -42
}