在執行自定義集合類型(並因此使其遵守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