Class F#类中的属性是否会使专用字段中使用的内存加倍?
F#类具有一个很好的特性,即参数自动成为不可变的私有字段。如果我想使一个这样的字段在外部可用,我可以在下面的代码中创建一个属性,如Class F#类中的属性是否会使专用字段中使用的内存加倍?,class,memory,f#,Class,Memory,F#,F#类具有一个很好的特性,即参数自动成为不可变的私有字段。如果我想使一个这样的字段在外部可用,我可以在下面的代码中创建一个属性,如I: type MyClass (i: int list) = member this.I with get() = i member this.foo x = i.Head + x let mc = MyClass [0..10] mc.foo 10 // 10 mc.I // [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
I
:
type MyClass (i: int list) =
member this.I with get() = i
member this.foo x = i.Head + x
let mc = MyClass [0..10]
mc.foo 10 // 10
mc.I // [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
上面代码中的I
是否是I
所用内存量的两倍,或者它只是一个返回I
值的函数
(当然,这仅在参数使用大量内存时才相关,上例中并非如此)否:
i
作为私有字段存储在MyClass
中MyClass.I
是一个函数,其get
函数返回所述字段的值
listNo:i
作为私有字段存储在MyClass
中MyClass.I
是一个函数,其get
函数返回所述字段的值
列表