【发布时间】:2020-05-06 14:17:26
【问题描述】:
以下代码无法编译:
type Person =
{
FirstName : string
LastName : string
}
type Employee =
{
FirstName : string
LastName : string
Salary : int
}
let p : Person =
{
FirstName = "Steve"
LastName = "Jobs"
}
let e : Employee =
{
p with Salary = 1
}
一种变通方法是编写一个助手,可能是这样的:
let toEmployee (p : Person) : Employee =
{
FirstName = p.FirstName
LastName = p.LastName
Salary = Unchecked.defaultof<_>
}
let e : Employee =
{
toEmployee p with Salary = 1
}
但这有点乏味。
F# 是否提供了更好的方法?
这在 JavaScript 中是很常见的事情,例如:
const e = {
...p,
salary: 1,
};
【问题讨论】: