type myClass(property1 : Map<int, string>) =
member val Property1 = property1 with get, set
let myObject = myClass(Map.ofList [(1, "one"); (2, "two"); (3, "three")])
Run Code Online (Sandbox Code Playgroud)
我理解正确,为了向属性集合添加元素,我们应该写
myObject.Property1 <- myObject.Property1.Add (5, "five")
Run Code Online (Sandbox Code Playgroud)
代替
myObject.Property1.Add (5, "five")
Run Code Online (Sandbox Code Playgroud)
?没有更简洁的语法?谢谢.
F#maps是不可变的,因此Add
返回Map
带有附加元素的new .因此,如果您将其存储在类的属性中,是的,您必须将新Map
属性分配给该属性.没有捷径语法,因为mutables不是真正的惯用语F#.
对于这个应用程序,您可能会发现它最好打开System.Collections.Generic
和使用Dictionary
,这是可变的,可能更适合携带内部对象.