假设我有以下类型:
type Temp<'b,'c> =
{
A : string
B : 'b
C : 'c
D : string
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个接收 Temp<string,string> 并输出 Temp<int,int> 的函数。我尝试了两种方法。最麻烦的(f1)有效,而最合乎逻辑(在我看来)则无效(f2)。
let f1 (r : Temp<string,string>) = //works
{
A = r.A
B = r.B |> int
C = r.C |> int
D = r.D
}
//doesn't work
let f2 (r : Temp<string,string>) = {r with B = r.B |> int; C = r.C |> int}
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法可以构造这样的函数而不必重复主体中的所有字段?
f# ×1