相关疑难解决方法(0)

更新Elm中记录内嵌套值的简明方法(0.18)

我正在寻找一种简洁的方法来更新Elm(0.18)中记录内的嵌套值.

给出以下示例:

person = { name = "Steven", address = { country = "Spain", city = "Barcelona" } }
Run Code Online (Sandbox Code Playgroud)

我可以使用以下表达式将person.name更新为"Steve":

{ person | name = "Steve" }
Run Code Online (Sandbox Code Playgroud)

但是,我正在寻找一种更新嵌套值的方法.例如,我想将person.address.city更新为"Madrid".我尝试了以下方法:

{ person | address.city = "Madrid" } 
{ person | address = { address | city = "Madrid" } } 
{ person | address = { person.address | city = "Madrid" } } 
Run Code Online (Sandbox Code Playgroud)

编译器拒绝所有这些变化.我看到的最短有效选项是:

let personAddress = person.address in { person | address = { personAddress | city = "Madrid" } } …
Run Code Online (Sandbox Code Playgroud)

record elm

14
推荐指数
2
解决办法
1364
查看次数

标签 统计

elm ×1

record ×1