forEach 主要用于遍历集合并执行操作,不会返回新的集合。
map 用于将集合中的每个元素转换为另一种形式,并返回新的集合。
filter 用于根据条件从集合中筛选出符合条件的元素,并返回新的集合。
compactMap 是 Swift 中的一个高阶函数,它在处理集合(如数组或字典)时非常有用。它的作用是将集合中的每个元素应用于一个转换闭包,然后返回一个新的集合,该集合只包含非空的转换结果。
1.forEach:
forEach 方法允许您对集合中的每个元素执行一些操作,但它不会返回新的集合。
forEach 方法通常用于执行某些操作,例如打印集合中的每个元素或更新对象的状态。
let numbers = [1, 2, 3, 4, 5]
numbers.forEach { print($0) }
2.map:
map 方法会遍历集合中的每个元素,并将每个元素应用于给定的转换闭包,然后返回一个包含转换结果的新集合。
map 方法通常用于将集合中的每个元素转换为另一种形式,而不改变原始集合。
let numbers = [1, 2, 3, 4, 5]
let squaredNumbers = numbers.map { $0 * $0 }
print(squaredNumbers) // 输出:[1, 4, 9, 16, 25]
3.filter:
filter 方法会遍历集合中的每个元素,并根据给定的条件闭包过滤出符合条件的元素,然后返回一个包含符合条件元素的新集合。
filter 方法通常用于从集合中筛选出符合特定条件的元素。
let numbers = [1, 2, 3, 4, 5]
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers) // 输出:[2, 4]
4.compactMap
具体来说,compactMap 的作用是:
遍历集合中的每个元素,并将每个元素应用于给定的转换闭包。
如果闭包的返回值是非空的(即不为 nil),则将该值添加到新的集合中。
最终返回一个新的集合,其中只包含非空的转换结果。
这个函数通常用于处理可能包含可选值的集合,并且只关心非空的转换结果的情况。
let strings = ["1", "2", "3", "four", "5"]
let integers = strings.compactMap { Int($0) }
print(integers) // 输出:[1, 2, 3, 5]