gpt4 book ai didi

Elm 记录速记符号

转载 作者:行者123 更新时间:2023-12-04 17:38:54 24 4
gpt4 key购买 nike

为了更好地使用 JavaScript 进行函数式编程,我开始学习 Elm。

在 JavaScript 中,您有对象速记符号:

const foo = 'bar';
const baz = { foo }; // { foo: 'bar' };

我想知道 Elm 中是否有类似的东西?我问是因为我有以下模型:
type alias Model =
{ title : String
, description : String
, tag : String
, tags : List String
, notes : List Note
}


type alias Note =
{ title : String
, description : String
, tags : List String
}

还有一个 update收到 AddNote 后的函数action 将注释添加到 notes 数组并清除输入:
AddNote ->
{ model | notes = model.notes ++ [ { title = model.title, description = model.description, tags = model.tags } ], title = "", description = "", tag = "" }

我知道在函数定义中你可以“解构”记录,但我认为即使在返回类型中我也必须明确输入记录的每个键。
AddNote ->
{ model | notes = model.notes ++ [ getNote model ], title = "", description = "", tag = "" }


getNote : Model -> Note
getNote { title, description, tags } =
{ title = title, description = description, tags = tags }

最佳答案

没有类似于 JavaScript 对象的速记记录符号。

但是,类型别名也用作构造函数,因此您可以使用以下内容:

getNote : Model -> Note
getNote { title, description, tags } =
Note title description tags

关于Elm 记录速记符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56157151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com