我想知道如果我能以某种方式使用x,y对作为我的字典的关键
let activeSquares = Dictionary <(x: Int,y: Int),SKShapeNode>()
但我得到的错误:
Cannot convert the expression's type '<<error type>>' to type '$T1'
和错误:
Type '(x: Int,y: Int)?' does not conform to protocol 'Hashable'
那么,我们如何使它符合?
Dictionary的定义是struct Dictionary< KeyType:Hashable,ValueType> :…,即密钥的类型必须符合协议Hashable。但语言指南告诉我们
protocols can be adopted by classes,structs and enums,即不是元组。因此,元组不能用作字典键。
解决方法是定义一个包含两个Ints(或任何你想放在你的元组中)的哈希表结构类型。