【问题标题】:How to set a variable's value (string) to be equal to a key in an array?如何将变量的值(字符串)设置为等于数组中的键?
【发布时间】:2023-03-22 05:18:01
【问题描述】:

我有以下数组:

var deckArray = [
        "card1": ["rank","suit"],
        "card2": ["rank","suit"],
        "card3": ["rank","suit"],
        "card4": ["rank","suit"],
        "card5": ["rank","suit"],
        "card6": ["rank","suit"],
        "card7": ["rank","suit"],
]

为了简洁起见,我剪掉了数组的其余部分,但整个东西包含 52 个对象。我想要做的是从 1 到 52 中选择一个随机数,并将 firstCardString 属性设置为等于数组中与该索引对应的任何键。

例如,如果它生成的随机数是5,它会将firstCardString 设置为等于card5

我试过这样做:

let firstRandomNumber = Int(arc4random_uniform(52))
let firstCardString:String = self.deckArray[firstRandomNumber]

但我收到以下错误:

不能用“Int”类型的索引为“[String : Array]”类型的值下标

这没有意义,因为firstCardString:string 明确属于string 类型,而不是int。

【问题讨论】:

    标签: arrays swift


    【解决方案1】:

    您已将您的 deckArray 声明为字典。所以你需要传递一个字符串(键)而不是一个 Int

    let firstRandomNumber = Int(arc4random_uniform(52))+1
    let firstCardString = deckArray["card\(firstRandomNumber)"]
    

    【讨论】:

    • 嗯,好的。在您的回答中,“卡片”是什么意思?
    • 这是字符串插值,将随机整数转换为字符串并组成您的字典键
    猜你喜欢
    • 2016-12-27
    • 1970-01-01
    • 2016-04-13
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多