gpt4 book ai didi

functional-programming - ELM 更新模型中的两个字段

转载 作者:行者123 更新时间:2023-12-04 11:56:03 25 4
gpt4 key购买 nike

如何一次更新模型中的两个字段?现在我请求返回一个别名 {price: Float, productId: Int}我需要更新模型中的两个字段,例如 model.price 和 model.productId

我正在寻找类似的东西,但它不起作用(ofc)

    case maybeProduct of
Just product ->
( { model | price = product.price &&
model | productId = product.productId}
, Cmd.none
)
Nothing ->
( model
, Cmd.none
)

我发现了一些信息,建议我可以创建两个函数(模型 -> 产品 -> 模型)并执行以下操作:

setPrice : Model -> Product -> Model
setPrice model product =
{ model | price = product.price }

setProductId : Model -> Product -> Model
setProductId model product =
{ model | companyId = product.productId }

Just product ->
let
newModel =
product
|> setPrice model
|> setProductId model
in
( newModel
, Cmd.none
)
Nothing ->
( model
, Cmd.none
)

但有些东西不起作用。看起来产品没有传入每个函数

我收到了

The argument is:

Model

But (|>) is piping it a function that expects:

{ companyId : Int, price : Float }

我哪里错了?或者也许有不同的方法来更新模型中的两个字段?

最佳答案

如何一次更新两个字段:

做这样的事情(顺便说一下,这不包括命令 - 你可以添加它以满足你的要求):

{ model | price = new_price, productId = newProductId}

如果你想添加命令,那么你可以这样做:

({ model | price = new_price, productId = newProductId}, nameOfYourCommand)

文档:

这是@JackLeow 非常友好地发布的链接:https://elm-lang.org/docs/records#updating-records

关于functional-programming - ELM 更新模型中的两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53352371/

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