我想知道我能否以某种方式使用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。但是语言指南告诉我们协议可以被类,结构和枚举所采用,即不能被元组所采用。因此,元组不能用作Dictionary键。
Dictionary
struct Dictionary<KeyType : Hashable, ValueType> : ...
Hashable
一种解决方法是定义一个包含两个Ints的可哈希结构类型(或您要放入元组的任何内容)。