测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最后发布 | 2017 年 8 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Naoto Onagi 维护。
Swift 中支持多个条件的排序器,如 NSSortDescriptor。
let items: [Item] = ...
// Create Sorter for each attribute
let sorterForNum = Sorter<Item>(asc: false) { $0.num }
let sorterForText = Sorter<Item>(asc: true) { $0.text }
// Create Sorter with multiple conditions
let sorter = Sorter([sorterForNum, sorterForText])
// Get sorted result
let result = items.sorted(by: sorter)
/*
result: [
Item(num: 2, text: "a"),
Item(num: 2, text: "b"),
Item(num: 2, text: "c"),
Item(num: 1, text: "a"),
Item(num: 1, text: "b"),
Item(num: 1, text: "c")
]
*/
默认排序为升序。
Sorter<Item>(asc: false) { $0.num } // Pattern 1
Sorter<Item>(asc: true) { $0.num } // Pattern 2
Sorter<Item> { $0.num } // Pattern 3
Sorter<Item> { $0.0.text < $0.1.text }
Sorter([sorter1, sorter2])
Sorter([sorter1, sorter2, sorter3])
...
通过排序器排序项目
let result = items.sort(by: sorter)
Naoto Onagi, [email protected]
Sorter 在 MIT 许可下可用。更多信息请参阅 LICENSE 文件。