型エイリアス

Elmの型エイリアスは、その名前のとおり型に対する別名です。例えば、Elmでは、coreにInt型とString型がありますが、これらに別名をつけることができます:

type alias PlayerId = Int

type alias PlayerName = String

他のcoreの型を単純に指し示す2つの型エイリアスを作成することで、以下のような関数を書く代わりに:

label: Int -> String

次のように書くことができます:

label: PlayerId -> PlayerName

こうすることで、関数の処理がはるかに明確になります。

レコード

Elmのレコード定義は次のようになります。

{ id : Int
, name : String
}

レコードを直接引数に取る関数の場合、次のようなシグネチャを書かなければならないでしょう:

label: { id : Int, name : String } -> String

これだとかなり冗長ですが、型エイリアスを使うことで以下のように書けます:

type alias Player =
    { id : Int
    , name : String
    }

label: Player -> String

ここでは、レコード定義を指す Player型エイリアスを作成しています。次に、その型名を関数シグネチャに使用しています。

コンストラクタ

レコードに対する型エイリアス名はコンストラクタ関数として使用できます。つまり型エイリアスを関数として使用し、レコードの値を作成できます。

type alias Player =
    { id : Int
    , name : String
    }

Player 1 "Sam"
==> { id = 1, name = "Sam" }

ここでは Player型エイリアスを作成し、次に2つのパラメータを持つ関数として Playerを呼び出します。これにより、適切な属性を持つレコードが返されます。引数の順序によって、どの値がどの属性に割り当てられるかが決まることに注意してください。

results matching ""

    No results matching ""