在执行自定义集合类型(并因此使其遵守CollectionType
协议)时,我开始想知道为什么MutableCollectionType
不被Dictionary
类型所采用?为什么Dictionary没有采用MutableCollectionType协议?
从文档MutableCollectionType
:
支持下标分配的集合。
对于任何实例的一个类型符合MutableCollectionType的,:
a[i] = x let y = a[i]
相当于:
a[i] = x
设Y = X
因此,似乎“逻辑“,即Dictionary也采用这个协议。但是,在检出头文件和文档之后,似乎只有Array
和相关类型可以完成此操作。
关于MutableCollectionType
或约Dictionary
或两者都有什么特别之处?我的字典式自定义集合类型是否由于某种原因也避免采用MutableCollectionType
?
您提供的摘录来自'Dictionary'所采用的** CollectionType的描述。我的问题是关于'MutableCollectionType'。 – courteouselk
确实如此,但想想别的我说的。文档报价只是热身。 – matt
谢谢。我想我现在开始明白了。这个细微的差别在'key'和'index'中,'Dictionary'不一样。可变性意味着能够改变'index'的值,但'Dictionary'不允许这样做。它只允许在给定的'key'处进行修改。 – courteouselk