您可以使用firstIndex(where:)
查找与您的条件匹配的第一个元素的索引来搜索元组数组。在您的情况下,您希望匹配特定的id
,因此您可以使用诸如 之类的闭包{ $0.id == "2" }
。
一旦找到该索引,您就可以使用它来更新数组内部的元组。
例子:
var info: [(id: String, name: String, years: Int, city: String)] = [
("1", "Fred", 35, "Bedrock"),
("2", "Wilma", 32, "Bedrock")
]
if let idx = info.firstIndex(where: { $0.id == "2" }) {
info[idx].city = "Boulder"
}
print(info)
Run Code Online (Sandbox Code Playgroud)
输出
Run Code Online (Sandbox Code Playgroud)[(id: "1", name: "Fred", years: 35, city: "Bedrock"), (id: "2", name: "Wilma", years: 32, city: "Boulder")]
使用 astruct
代替元组
也就是说,您确实应该使用struct
此处来包含您的值。Swift 中的元组实际上是为了临时使用(例如从函数返回多个值),因此struct
最好定义 a 来保存您的值:
struct Record {
var id: String
var name: String
var years: Int
var city: String
}
var info: [Record] = [
.init(id: "1", name: "Fred", years: 35, city: "Bedrock"),
.init(id: "2", name: "Wilma", years: 32, city: "Bedrock")
]
Run Code Online (Sandbox Code Playgroud)
搜索代码将保持不变。
归档时间: |
|
查看次数: |
1926 次 |
最近记录: |