¿Qué hace "! [] "Sintaxis de código Elm en Todomvc media
Viniendo de react, estoy aprendiendo a entender Elm.
En el código de ejemplo Todomvc , hay el siguiente fragmento de código:
-- 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?
Lo que yo (creo que yo) entiendo, es que la función update
toma a msg
de tipo Msg
y a model
de tipo Model
, y devuelve una tupla que contiene a Model
y a Cmd Msg
.
Pero ¿cómo debo leer la declaración de devolución?
model ! []
¿Qué significa esta declaración? devolver un "modelo [algo] lista vacía"?
Lo hice ¿te perdiste algo en los documentos donde se explica esto? (Googleando " elm !"no me llevó lejos:)
2 answers
Actualización para Elm 0.19
Elm 0.19 ha eliminado el operador de signo de exclamación. Ahora debe construir la tupla manualmente, como en (model, Cmd.none)
.
Respuesta original para Elm 0.18
El signo de exclamación en model ! []
es solo una función de mano corta para (model, Cmd.batch [])
, que es el tipo devuelto por las sentencias típicas update
. Se define aquí
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-22 11:18:23
Tenga en cuenta que esta sintaxis desaparecerá en la próxima versión de Elm (0.19), así que no se acostumbre a usarla; -)
Se puede utilizar hoy, y con 0.19:
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
NoOp ->
(model, Cmd.none)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-24 11:56:50