当扩展记录时,编译器是否在内存中创建了一个新位置(深层复制?),或者编译器是否使记录可变并修改了值?
例如:
type MyRecord = { A : string
; B : string
}
let record = { A = "A"; B = "B" }
let record = { record with A = "new A" } //copy or overwrite?
Run Code Online (Sandbox Code Playgroud)
因为我覆盖record了编译器复制还是覆盖?是否存在性能问题?
它制作副本.
*复制和更新记录表达式详细说明它是如下所示的记录表达式:
让{= label1 = expr1中的v = expr; ......; field-labeln = exprn; F1 = v.F1; ......; FM = v.FM}
其中F1 ... FM是R的字段,未在字段初始化程序中定义,v是新变量.*
| 归档时间: |
|
| 查看次数: |
307 次 |
| 最近记录: |