小编典典

在Swift中,我可以使用元组作为字典的键吗?

swift

我想知道我能否以某种方式使用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'

那么..我们怎样才能使其符合标准?


阅读 318

收藏
2020-07-07

共1个答案

小编典典

的定义Dictionarystruct Dictionary<KeyType : Hashable, ValueType> : ...,即密钥的类型必须符合协议Hashable。但是语言指南告诉我们协议可以被类,结构和枚举所采用,即不能被元组所采用。因此,元组不能用作Dictionary键。

一种解决方法是定义一个包含两个Ints的可哈希结构类型(或您要放入元组的任何内容)。

2020-07-07