我正在Swift 3中尝试结构,并尝试提取/打印一些值。这是我的代码:
struct person {
var name: String
var gender: String
var age: Int
}
var people = [
person(
name: "Steve",
gender: "Male",
age: 25
),
person(
name: "Paul",
gender: "Male",
age: 30
),
person(
name: "Sandra",
gender: "Female",
age: 21
),
person(
name: "Becky",
gender: "Female",
age: 30
),
person(
name: "Trevor",
gender: "Male",
age: 45
)
]
我了解到,age
如果提供,我可以找到一个人的name
:
let nameToSearch = "Trevor"
if let i = people.index(where: {$0.name == nameToSearch}) {
print("\(nameToSearch) is aged \(people[i].age)") // Trevor is aged 45
}
最好的方法是...
1)捕获组中的四个最老的人,按年龄将它们按降序排序,然后像这样打印它们?
Trevor is aged 45
Paul is aged 30
Becky is aged 30
Steve is aged 25
2)捕获gender
is的所有实例"Male"
,并像这样打印它们?
The males are Steve, Paul, Trevor
出于兴趣,假设用户正在执行导致获取/设置现有实例以及添加/删除实例的操作,person
那么people
阵列中是否存在大量实例,这些实例会导致应用性能受到打击?
招募4岁老人的简洁方法:
let oldestPeople = people.sorted(by: { $0.0.age > $0.1.age })[0 ..< 4]
for person in oldestPeople {
print("\(person.name) is aged \(person.age)")
}
并获得男性名字:
let maleNames = people.filter({ $0.gender == "Male" }).map({ $0.name })
print("The males are " + maleNames.joined(separator: ", "))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句