struct Person {
var name: String
var age: Int
}
let people = [Person(name: "Tom", age: 30),
Person(name: "Alice", age: 25),
Person(name: "Bob", age: 40),
Person(name: "Mary", age: 25)]
let groupedPeople = Dictionary(grouping: people, by: { $0.age })
print(groupedPeople)
// 输出 [30: [Person(name: "Tom", age: 30)], 25: [Person(name: "Alice", age: 25), Person(name: "Mary", age: 25)], 40: [Person(name: "Bob", age: 40)]]
let groupedPeople = Dictionary(grouping: people, by: { $0.name.first! })
这样,我们将 people 数组按照每个 Person 对象的 name 属性的首字母进行分组。请注意,在闭包中,我们使用 $0.name.first! 来获取 name 属性的首字母。
------ 把所有key组成一个数组
let dict = ["apple": 3, "banana": 2, "orange": 5]
let keysArray = Array(dict.keys)
print(keysArray) // 输出 ["apple", "banana", "orange"]