Merge Elm 0.19中具有可扩展记录的合并模型
我定义了一个可扩展的记录Merge Elm 0.19中具有可扩展记录的合并模型,merge,record,elm,Merge,Record,Elm,我定义了一个可扩展的记录 type alias Saved a = { a | x : Int , y : String } 以及基于此的模型: type alias Model = Saved { z : Float } 然后,我将JSON加载并解码到一个保存的{}: let received = Decode.decodeValue savedDecoder json |> Result.toMaybe in (Maybe.map (\r
type alias Saved a =
{ a
| x : Int
, y : String
}
以及基于此的模型
:
type alias Model =
Saved { z : Float }
然后,我将JSON加载并解码到一个保存的{}
:
let
received =
Decode.decodeValue savedDecoder json |> Result.toMaybe
in
(Maybe.map
(\r ->
{ model
| x = r.x
, y = r.y
}
)
received
|> Maybe.withDefault model
是否有任何方法可以将现有的
模型
与收到的可扩展记录合并,而不需要单独复制每个字段,类似于ES6对象。分配
功能?就是这样做的。(可选)您可以选择模式匹配参数:
Maybe.map
(\{x, y} ->
{ model
| x = x
, y = y
}
)