如何部分更新纯脚本记录

Coo*_*Dev 2 record purescript

每个人!

我是 Purescript 初学者,在处理记录时遇到问题。

我有一种记录类型:

type Employee =
 { firstName :: String
 , lastName :: String
 , address :: String
 , height :: Number
 , weight :: Number
 ...
 }
Run Code Online (Sandbox Code Playgroud)

我只想更新此记录的一部分。假设我只想像下面的打字稿代码那样更新高度。

let a: Employee = {
 ...a,
 height: 180
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Purescript 中实现这一点?谢谢你。

Fyo*_*kin 5

PureScript 中记录更新的语法如下:

r2 = r1 { x = 42, y = "foo" }
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • r1 是原始记录
  • r2 是新的、更新的记录
  • x并且y是记录字段(不一定是所有字段

上面的代码段等效于以下 JavaScript 代码:

r2 = { ...r1, x: 42, y: "foo" }
Run Code Online (Sandbox Code Playgroud)

  • 只是不要包含“y” (2认同)