理解elm中的代码片段(类型更新)

理解elm中的代码片段(类型更新),elm,Elm,下面的代码是什么意思 type Update = First Field.Content | Last Field.Content | Email Field.Content | Remail Field.Content | Submit (代码取自第36行) 声明新类型更新?这些竖条是什么意思?是的,这声明了一个新类型更新。竖条可以理解为“或”。也就是说,Update类型的内容可以是: 一个第一个,其中包含一些类型为字段的数据。内容 一个最后一个,其中

下面的代码是什么意思

type Update
    = First Field.Content
    | Last Field.Content
    | Email Field.Content
    | Remail Field.Content
    | Submit
(代码取自第36行)


声明新类型
更新
?这些竖条是什么意思?

是的,这声明了一个新类型
更新。竖条可以理解为“或”。也就是说,
Update
类型的内容可以是:

  • 一个
    第一个
    ,其中包含一些类型为
    字段的数据。内容
  • 一个
    最后一个
    ,其中包含一些类型为
    字段的数据。内容
  • 一封
    电子邮件
    ,其中包含一些
    字段类型的数据。内容
  • 一个
    Remail
    ,其中包含一些类型为
    字段的数据。内容
  • a
    提交
    ,没有相应的数据
  • 要处理
    Update
    类型的值,可以使用
    大小写
    -
    语法来区分不同的可能值:

    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网站上添加一个文档链接,但是它正在为新的0.14版本改写。我以后可能会回来编辑;)

    这就像过程语言中的枚举类型,对吗?那些
    第一个
    最后一个
    更像一个标签,对吗?是这个吗?谢谢你的帮助:)这是正确的链接。当前名称为“Union type”,Elm文档的浏览效果很好,请在Elm-lang.org上用谷歌搜索一下。抱歉,我没有提供链接,网站结构即将更改。