Swift 作为一门新兴的语言,它吸收了众多语言的优点,函数式编程就是其中之一。在 Swift 中,函数是作为一等公民
的存在,所以学习高阶函数还是非常有必要的,它可以使你的代码扩展性更高,代码更 Swift 范。废话不多说,下面就让我们开始吧!
初探高阶函数
在 Swift 中,高阶函数一共有下面几个:
- map:对给定数组每个元素,执行闭包中的映射,将映射结果放置在数组中返回。
- flatMap:对给定数组的每个元素,执行闭包中的映射,对映射结果进行
合并操作,
然后将合并操作后的结果放置在数组中返回。 - compactMap:对给定数组的每个元素,执行闭包中的映射,将
非空的
映射结果放置在数组中返回。 - compactMap对给定数组的每个元素,执行闭包中的映射,将
非空的
映射结果-键值对放置在字典中返回。 - filter:对给定数组的每个元素,执行闭包中的操作,将
符合条件的元素
放在数组中返回。 - reduce:对给定数组的每个元素,执行闭包中的操作对元素进行
合并
,并将合并结果返回。
通过上面的阐述,我们大概了解到了这几个函数是做什么用的,下面我们在通过几个例子来具体看一下代码上如何使用。
map
对于 map 函数,使用场景就是将数组的类型映射为别的类型。比如,我们有一个模型数组,模型的 id 字段我们从服务器拿的是 String 类型,在某种场景下我们需要转为 Int 类型,这时候我们就可以通过 map 函数来实现该需求。
struct Student {
let id: String
let name: String
let age: Int
}
let stu1 = Student(id: "1001", name: "stu1", age: 12)
let stu2 = Student(id: "1002", name: "stu2", age: 14)
let stu3 = Student(id: "1003", name: "stu3", age: 16)
let stu4 = Student(id: "1004", name: "stu4"<