我要做的是生成一个介于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]