New

型に対して実装を行うためにはimplを使います:

impl List {
    // TODO: コードを書く
}

あとはコードの書き方がわかればいいだけです.Rustではこんな感じに関数を宣言します:

fn foo(arg1: Type1, arg2: Type2) -> ReturnType {
    // body
}

はじめに必要なのはリストを作る手段です.実装を隠蔽するので関数化する必要が あります.Rustでの一般的なやりかたはスタティックメソッドを作るというもので, implのなかに普通に関数を書きます:

impl List {
    pub fn new() -> Self {
        List { head: Link::Empty }
    }
}

いくつか注意事項があります:

  • Selfというのは「上にあるimplのすぐ右に書いた型」のことです.繰り返しが少ないのはよいことですね!
  • 構造体のインスタンスの生成は宣言とほぼ同じですが,フィールドの型を指定する代わりに値を与えます.
  • enumの列挙子の指定に::を使いました.これは名前空間を区切る識別子です.
  • 関数の最後に書かれたものが返り値になります.これによって簡単な関数を若干きれいに書けます. もちろん他のCライク言語のようにreturn文を使って早期リターンすることもできます.