如何在通用自定义类中使用词典

时间:2016-09-28 10:06:53

标签: swift generics collections

我想使用Dictionary作为自定义类的成员引用,但我有一些问题需要了解如何使用泛型来定义它。
我有以下Swift代码:

public class MyDictionary<K,V> {
  private var dict : Dictionary<K,V>

  public init() {
    dict = Dictionary<K,V>()
  }
}

稍后在我的应用中,我想创建几种类型的词典:

dict1 = MyDictionary<Int,String>()
dict2 = MyDictionary<String,MyCustomClass>()
...

我的推理错误在哪里?

1 个答案:

答案 0 :(得分:0)

只有Hashable类型可以存储为Swift Dictionary的键:

class MyDictionary<Key : Hashable, ValueType> {
    private var dict : Dictionary<Key,ValueType>

    internal init() {
        dict = Dictionary<Key,ValueType>()
    }
}

var dict1 = MyDictionary<Int,String>()
var dict2 = MyDictionary<String,String>()