当前位置: 代码迷 >> 综合 >> Swift中的高阶函数
  详细解决方案

Swift中的高阶函数

热度:88   发布时间:2024-02-01 17:20:14.0

map函数:通过执行闭包中定义的操作,返回一个新的集合

使用场景:  Int数组->String数组

func map() {let nums = [1,2,3,4]let numToStings = nums.map {"\($0)"}print("\(numToStings)") // 打印结果["1", "2", "3", "4"]
}

flatMap函数:

使用场景1:flatmap函数用于多维数组

func flatMap() {let arr = [[1,2,3],[3,4,5]]let nArr = arr.flatMap {$0}print(nArr)  // 打印结果:[1, 2, 3, 3, 4, 5]
}

使用场景2:flatmap函数用于去除nil (4.1之后废弃,使用compactMap代替)

func flatMap() {let oNums:[Int?] = [0,2,4,nil,9]let nNums = oNums.flatMap {$0}print("\(nNums)")  // 打印结果:[0, 2, 4, 9]
}

Tip:若想要了解map和flatmap之间区别的小伙伴,可以移驾 map和flatMap之间区别相关文章 讲的很详细哦!

filter函数:用于过滤数组中符合闭包条件的元素

使用场景:

func filter() {let nums = [1,3,5,7,9,10,13]let filterResults = nums.filter{ $0 % 2 == 0}print(filterResults) // 打印结果:[10]
}

reduce函数:用于求和

使用场景:对一组数值进行求和运算

func reduce() {let arr = [1, 2, 4]let reduceResult = arr.reduce(0) {(p: Int, e: Int) inreturn p + e}print(reduceResult,crr)  // 打印结果:7
}