1. map
map 函数用于对集合中的每个元素应用相同的操作,并返回一个新的集合。
let numbers = [1, 2, 3, 4, 5]
let squaredNumbers = numbers.map { $0 * $0 }
print(squaredNumbers) // 输出: [1, 4, 9, 16, 25]
2. filter
filter 函数用于过滤集合中的元素,只保留满足条件的元素。
let numbers = [1, 2, 3, 4, 5]
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers) // 输出: [2, 4]
3. reduce
reduce 函数用于将集合的所有元素组合为单一的结果。它接受一个初始值和一个闭包,闭包定义了如何将元素累积到结果中。
let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { $0 + $1 }
print(sum) // 输出: 15
4. flatMap
flatMap 函数用于将数组中的元素映射到另一个数组,并将结果展平成一个数组。
let nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
let flatArray = nestedArray.flatMap { $0 }
print(flatArray) // 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]
5. sorted
sorted 函数用于对数组进行排序。它可以接受一个闭包,定义了排序的规则。
let numbers = [5, 2, 8, 1, 7]
let sortedNumbers = numbers.sorted { $0 < $1 }
print(sortedNumbers) // 输出: [1, 2, 5, 7, 8]
6. compactMap
compactMap 函数用于将数组中的可选值去掉,并将非空值映射到一个新的数组。
let optionalNumbers: [Int?] = [1, nil, 3, nil, 5]
let nonOptionalNumbers = optionalNumbers.compactMap { $0 }
print(nonOptionalNumbers) // 输出: [1, 3, 5]
7. forEach
forEach 函数用于对数组中的每个元素执行一个操作。
let numbers = [1, 2, 3, 4, 5]
numbers.forEach { print($0) }
// 输出:
// 1
// 2
// 3
// 4
// 5
这些函数是 Swift 中进行函数式编程时常用的一些高阶函数。它们可以帮助你编写更简洁、清晰和功能性的代码。当你逐渐熟悉这些函数并深入理解函数式编程的概念时,你将能够更好地利用 Swift 的强大功能。
转载请注明出处:http://www.zyzy.cn/article/detail/6866/Swift