下面的代码是什么意思?
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
?那些竖线是什么意思?
下面的代码是什么意思?
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
?那些竖线是什么意思?
是的,这声明了一个新类型Update
。竖线可以读作“或”。也就是说,某种类型Update
可以是:
First
,其中包含一些类型的数据Field.Content
Last
,其中包含一些类型的数据Field.Content
Email
,其中包含一些类型的数据Field.Content
Remail
,其中包含一些类型的数据Field.Content
Submit
,它没有对应的数据。要处理 type 的值Update
,可以使用case
-of
语法来区分不同的可能值:
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 版本重写。我以后可能会回来编辑它;)