📜  swift 如何对数组进行排序 - Swift (1)

📅  最后修改于: 2023-12-03 15:20:25.160000             🧑  作者: Mango

Swift 如何对数组进行排序

在 Swift 中,对数组进行排序有很多种方式。下面介绍其中的常见方法。

1. sort()

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]
2. sorted()

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]
3. sorted(by:)

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]
4. 自定义排序条件

以上方法都是按元素大小进行排序,如果想按照其他条件进行排序,比如字符串长度、日期等,可以通过自定义比较器实现。

示例:

let strings = ["apple", "banana", "pear", "orange"]
let sortedStrings = strings.sorted {
    $0.count < $1.count
}
print(sortedStrings)

输出:

["pear", "apple", "banana", "orange"]

以上就是 Swift 中对数组进行排序的一些常见方法,根据不同的需求选择不同的方法即可。