【发布时间】:2014-05-25 02:52:26
【问题描述】:
到目前为止,我读过的所有结构示例要么是所有字段都是可变的,要么是所有字段都是不可变的。因此,这编译得很好:
[<Struct>]
type Number(x:int) =
member this.X = x
这也是如此:
[<Struct>]
type Number =
val mutable X:int
new(x) = {X = x}
但是,我不知道如何为具有一个可变字段和一个不可变字段的结构编写显式构造函数:
[<Struct>]
type Numbers(x:int) =
member this.X = x
val mutable Y:int
new(x,y) = ???
显式构造函数必须清楚地调用隐式构造函数。到目前为止,我尝试过的所有天真的解决方案都失败了。
一个后续问题:解决方案,不管它是什么,是否将字段 Y 分配一次或两次(首先使用默认值)?
【问题讨论】: