什么"! []" Todomvc中的榆树代码语法是指

时间:2016-05-25 21:45:10

标签: elm

来自反应,我正在学习理解榆树。

Todomvc example code中,有以下代码段:

-- 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?

我(我认为)理解的是,update函数包含msg类型Msgmodel类型Model,并返回包含ModelCmd Msg的元组。

但我该如何阅读return语句?

model ! []

这句话是什么意思?返回&#34;模型[某事]空列表&#34;?
我在文档中遗漏了哪些内容? (谷歌搜索&#34;榆树!&#34;没有让我走远:)

2 个答案:

答案 0 :(得分:59)

更新Elm 0.19

Elm 0.19删除了感叹号操作符。您现在必须手动构建元组,如(model, Cmd.none)

Elm 0.18的原始答案

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

答案 1 :(得分:7)

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

您现在可以使用,并且使用0.19:

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