F#:如何使用"with"构造函数获取更多值

Krz*_*nek 5 f# constructor with-statement

在F#我可以这样做:

let card = { anotherCard with Cost = 4 }
Run Code Online (Sandbox Code Playgroud)

但是我想这样做:

let card = { anotherCard with Cost = 4 with WinPoints = 5 }
Run Code Online (Sandbox Code Playgroud)

或至少有一个班轮,现在我必须:

let cardTemp = { anotherCard with Cost = 4 }
let card = { cardTemp with WinPoints = 5 }
Run Code Online (Sandbox Code Playgroud)

Cha*_*ert 15

您可以用分号分隔多个字段设置器:

let card = { anotherCard with Cost = 4; WinPoints = 5 }
Run Code Online (Sandbox Code Playgroud)

您还可以将字段放在单独的行上(不带分号分隔符):

let card = { anotherCard with
                Cost = 4
                WinPoints = 5 }
Run Code Online (Sandbox Code Playgroud)