Swift泛型和下标 - 值与K不同

时间:2014-08-09 17:25:51

标签: generics swift subscript

我收到编译错误,因为编译器认为我的元组中的“key”与泛型数组的类型不同。知道为什么吗?

class MyClass <K: Hashable, V> {

   let keys = [K]()

   subscript(index: Int) -> (key: K, value: V) {
      set(newValue) {
         // also tried newValue.key!
         keys[index] = newValue.key
      }
   }
}

1 个答案:

答案 0 :(得分:5)

当您声明为不可变数组时,您正尝试设置数组keys的值。 keys数组应声明为:

var keys = [K]() // var declaration makes it mutable