📅  最后修改于: 2023-12-03 15:20:25.160000             🧑  作者: Mango
在 Swift 中,对数组进行排序有很多种方式。下面介绍其中的常见方法。
sort() 函数是 Swift 标准库中的数组排序函数,它可以对数组进行原地排序,也可以返回一个新的已经排序好的数组。
示例:
var numbers = [2, 5, 1, 6, 3, 4]
numbers.sort()
print(numbers)
输出:
[1, 2, 3, 4, 5, 6]
sort() 函数默认按升序排列,如果想要按降序排列,则可以传入一个逆序比较器。
示例:
var numbers = [2, 5, 1, 6, 3, 4]
numbers.sort(by: >)
print(numbers)
输出:
[6, 5, 4, 3, 2, 1]
sorted() 函数和 sort() 函数类似,也可以对数组进行排序,不过它返回一个新的已经排序好的数组,而不是原地修改原始数组。
示例:
let numbers = [2, 5, 1, 6, 3, 4]
let sortedNumbers = numbers.sorted()
print(sortedNumbers)
输出:
[1, 2, 3, 4, 5, 6]
sorted() 函数同样支持自定义排序规则。
示例:
let numbers = [2, 5, 1, 6, 3, 4]
let sortedNumbers = numbers.sorted(by: >)
print(sortedNumbers)
输出:
[6, 5, 4, 3, 2, 1]
sorted(by:) 函数是 sorted() 函数的另一种写法,可以通过闭包自定义排序规则。
示例:
let numbers = [2, 5, 1, 6, 3, 4]
let sortedNumbers = numbers.sorted(by: {
$0 < $1
})
print(sortedNumbers)
输出:
[1, 2, 3, 4, 5, 6]
也可以使用尾随闭包的语法。
示例:
let numbers = [2, 5, 1, 6, 3, 4]
let sortedNumbers = numbers.sorted() {
$0 < $1
}
print(sortedNumbers)
输出:
[1, 2, 3, 4, 5, 6]
以上方法都是按元素大小进行排序,如果想按照其他条件进行排序,比如字符串长度、日期等,可以通过自定义比较器实现。
示例:
let strings = ["apple", "banana", "pear", "orange"]
let sortedStrings = strings.sorted {
$0.count < $1.count
}
print(sortedStrings)
输出:
["pear", "apple", "banana", "orange"]
以上就是 Swift 中对数组进行排序的一些常见方法,根据不同的需求选择不同的方法即可。