2

次のコードはどういう意味ですか?

type Update
    = First Field.Content
    | Last Field.Content
    | Email Field.Content
    | Remail Field.Content
    | Submit

( http://elm-lang.org/edit/examples/Intermediate/Form.elm行 36から取得したコード)

新しい型を宣言しUpdateますか? これらの縦棒は何を意味しますか?

4

1 に答える 1

1

はい、これは新しい型を宣言しUpdateます。縦棒は「or」と読むことができます。つまり、何かの型Updateは次のいずれかになります。

  1. a First、型のデータが含まれていますField.Content
  2. a Last、型のデータが含まれていますField.Content
  3. an Email、型のデータが含まれていますField.Content
  4. a Remail、型のデータが含まれていますField.Content
  5. またはSubmit対応するデータがありません。

type の値を処理するには、 -構文をUpdate使用して、可能なさまざまな値を区別できます。caseof

update : Update -> State -> State
update upd st = case upd of
  First  content -> st -- do something in the situation that the Update is a First
  Last   content -> st -- do something in the situation that the Update is a Last
  Email  content -> st -- do something in the situation that the Update is a Email
  Remail content -> st -- do something in the situation that the Update is a Remail
  Submit -> st -- do something in the situation that the Update is a Submit

Elm Web サイトのドキュメントへのリンクを追加しますが、新しい 0.14 リリースに向けて書き直しています。後で戻って編集するかもしれません;)

于 2014-12-11T14:16:15.960 に答える