反応から来て、私はエルムを理解することを学んでいます。
Todomvcサンプルコード には、次のコードスニペットがあります。
-- 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
のMsg
とタイプmodel
のModel
を取り込むことです。 _、Model
とCmd Msg
を含むタプルを返します。
しかし、どのようにreturnステートメントを読む必要がありますか?
model ! []
このステートメントはどういう意味ですか? 「モデル[何か]空のリスト」を返しますか?
これが説明されているドキュメントで何かを見逃しましたか? (グーグル "Elm!"は私を遠くに連れて行きませんでした:)
Elm 0.19のアップデート
Elm 0.19は感嘆符演算子を削除しました。 (model, Cmd.none)
のように、タプルを手動で作成する必要があります。
Elm 0.18の元の回答
model ! []
内の感嘆符は(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)