ユニット型

空のタプル()はElmではユニット型と呼ばれます。一般的なので説明が必要でしょう。

aで表される型変数を持つ型エイリアスを考えてみましょう:

type alias Message a =
    { code : String
    , body : a
    }

このように bodyStringであるMessageを期待する関数を作ることができます:

readMessage : Message String -> String
readMessage message =
    ...

または bodyが整数のリストであるようなMessageを期待する関数も書けます:

readMessage : Message (List Int) -> String
readMessage message =
    ...

しかし、bodyに値を必要としない関数はどうでしょう?その場合、bodyが空であることを示すために、ユニット型を使用します。

readMessage : Message () -> String
readMessage message =
    ...

この関数は、空のbodyを持つ Messageをとります。これは任意の値ではなく、空の値と同じです。

このように、ユニット型は通常、空の値の代わりとして使用されます。

タスク

Task型でのユニット型の使用例を見てみましょう。Taskを使う場合、ユニット型を頻繁に使用します。

典型的なタスクはエラー結果を持ちます。

Task error result
  • エラーを安全に無視できるタスクが必要な場合があります: Task () result
  • あるいは、結果を無視する場合: Task error ()
  • またはその両方を無視する場合: Task () ()

results matching ""

    No results matching ""