“你说什么?”;![……”是;Todomvc mean中的Elm代码语法

“你说什么?”;![……”是;Todomvc mean中的Elm代码语法,elm,Elm,来自react,我正在学习了解Elm 在中,有以下代码段: -- How we update our Model on a given Msg? update : Msg -> Model -> ( Model, Cmd Msg ) update msg model = case msg of NoOp -> model ! [] <-- What is this? 这句话是什么意思?返回“模型[某物]空列表”? 我是否遗漏了文档中

来自react,我正在学习了解Elm

在中,有以下代码段:

-- How we update our Model on a given Msg?
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
  case msg of
    NoOp ->
      model ! []        <-- What is this?
这句话是什么意思?返回“模型[某物]空列表”?

我是否遗漏了文档中解释这一点的内容?(谷歌搜索“elm!”并没有让我走多远:)

elm 0.19的更新

Elm 0.19已删除感叹号运算符。现在必须手动构造元组,如
(model,Cmd.none)
中所示

Elm 0.18的原始答案


模型中的感叹号![]
只是
(model,Cmd.batch[])
的一个简写函数,它是从典型的
update
语句返回的类型

请注意,这种语法在下一版本的Elm(0.19)中将消失,因此不要养成使用它的习惯;-)

您可以在今天使用0.19:

update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
  case msg of
    NoOp ->
      (model, Cmd.none)

谢谢你的解释。我确实遇到了晦涩的
(!):model->List(Cmd-msg)->(model,Cmd-msg)
行,但我无法将其转换为
model![]
希望更多的文档将随之而来。到目前为止感觉像是一种很有前途的语言。这是elm的主要问题之一。如何在网上搜索感叹号“!”?我试着搜索了“榆树郎感叹号”的十个变体。我甚至搜索了“哈斯克尔感叹号”。为什么我们不能按原样编写
(model,Cmd.batch[])
?这让它变得不那么神奇。即使您必须使其“更少cody”,那么是否应该使用带有单词的中缀运算符,如
someOperator
?只是一些想法。你可以使用Elm软件包花式搜索(转到并单击)来查找类似的函数。而且它调出了正确的函数。你们这些榆树人真是太快了FWIW我觉得很有帮助。你能给我们提供一个替代方案吗?@Astrowie而不是
模型![cmd1,cmd2]
您使用的是
(model,Cmd.batch[cmd1,cmd2])
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
  case msg of
    NoOp ->
      (model, Cmd.none)