我搞不懂什么是不可变类型。我知道float对象被认为是不可变的,下面是我书中的例子: def __new__(cls, val):这是不是因为类结构/层次结构而被认为是不可变的?这意味着float位于类的顶部,并且是它自己的方法调用。类似于这种类型的示例(尽管我的书中说dict是可变的):
class So
这就是问题所在;我有一个包含大量条目的不可变字典。此dict中包含的键类型和值类型本身是不可变的。我希望能够改变这个字典(添加/删除/替换键值对),而不必执行字典的完整副本。我正在想象一些用于不可变dict的包装类,它遵守dict契约,并且对于尚未更新的值,默认使用不可变dict。我看到了我计划用来制作这个包装器的post How to “perfectly” override a dict?。 在我开始实现这个设
我有声明可变字典的代码,但是当我试图更改一个元素时,我会得到一个错误。[PositionSide.Long] |> Seq.map (fun l -> l.Id, l)这将创建一个IDictionary我知道对象本身是不可变的,但是字典的内容应该是可变的。当我通过显式初始化字典来更改代码时,它就变得可变了: let a =
seq