尝试访问字典中的键:"Cannot subscript a value of type '[String : Array<String>]' with an index of type



我要做的是生成一个介于1和52之间的随机数(firstRandomNumber),然后将dictionaryTest设置为等于字典中相应索引处的键。

例如,如果生成的firstRandomNumber恰好是2,则dictionaryTest应该等于deckDictionary[2]处的密钥,即"card2"

var deckDictionary = [
        "card1": ["rank","suit"],
        "card2": ["rank","suit"],
        "card3": ["rank","suit"],
        "card4": ["rank","suit"],
        "card5": ["rank","suit"],
        ////... clipped for brevity
        "card52": ["rank","suit"],
]
let firstRandomNumber = Int(arc4random_uniform(52))+1
let dictionaryTest = deckDictionary[firstRandomNumber]
print(dictionaryTest)

然而,当我尝试这样做时,设置dictionaryTest会出现以下错误:

无法为"[String:Array]"类型的值添加具有"Int"类型索引的下标

我不知道这意味着什么,是因为"card2"键/字符串本身包含一个数组吗?

这是因为deckDictionary中的键属于String类型,并且您正试图使用int键访问deckDiction中的元素。你可能可以这样做:

let firstRandomNumber = Int(arc4random_uniform(52))+1
let key = "card(firstRandomNumber)"
let dictionaryTest = deckDictionary[key]

相关内容

最新更新