我正在尝试在多个阵列之间建立连接。例; (马里奥兄弟)
var names = ["Mario", "Luigi"]
var colors = ["Red", "Green"]
而不是像if names == "Mario" && colors == "Red"
这样的if语句我希望更容易连接 - 就像按钮有标签一样,我想制作一个字符串标签("Mario".tag = 1
和{{1} })
请注意,我有10个不同的数组,如上所述。
答案 0 :(得分:3)
我建议你创建一个包含10个属性的结构,并建立一个包含这些结构的数组,而不是10 parallel arrays。
结构是一个数据包,它抽象出内容的细节,并允许您作为一个整体处理数据。
我建议你查看Swift编程指南(在它的完整性)。它编写得非常好。特别是,这是page on Classes and Structs.
此外,如果你想比较一个结构,比如Mario(就像在你的例子中那样),你可以实现一个方法==
并使你的结构符合Equatable
协议,这将允许你做类似的事情:
if someCharacter == Mario {... //automatically compares all properties.
答案 1 :(得分:0)
首先,您需要一个ModelValue
struct Element {
let name: String
let color: String
}
现在给出
let names = ["Mario", "Luigi"]
let colors = ["Red", "Green"]
您可以创建Element(s)
。
let elements = zip(names, colors).map { Element(name: $0.0, color: $0.1) }
最后你可以使用它
elements[0].name
elements[0].color