New
実際のコードを型に関連付けるには、impl ブロックを使います。
impl List {
// TODO、コードが動くようにする
}
次に必要なのは、実際にコードを書く方法を理解することです。Rust では 次のように関数を宣言します。
fn foo(arg1: Type1, arg2: Type2) -> ReturnType {
// 本体
}
最初に欲しいのは、リストを構築する方法です。実装の詳細は隠しているため、
それを関数として提供する必要があります。Rust でこれを行う通常の方法は、
静的メソッドを提供することです。これは impl の中にある
通常の関数にすぎません。
impl List {
pub fn new() -> Self {
List { head: Link::Empty }
}
}
これについていくつか注意点があります。
- Self は「
implの横の上部に書いたあの型」の別名です。同じことを 繰り返さずに済むので便利です! - 構造体のインスタンスは、構造体を宣言する場合とほぼ同じ方法で作成します。ただし、 フィールドの型を指定する代わりに、値で初期化します。
- enum のバリアントは、名前空間演算子である
::を使って参照します。 - 関数の最後の式は暗黙的に返されます。
これにより、単純な関数を少しすっきり書けます。他の C 系言語と同じように、
returnを使って早期に返すこともできます。