美文网首页
高阶函数介绍

高阶函数介绍

作者: 低吟浅唱1990 | 来源:发表于2016-07-09 16:41 被阅读32次

1.map函数

(Return an Array containing the results of mapping transform)map函数对数组元素进行某种规则的转换并返回一个新的数组
<pre>
let arr = [1,2,4,5]
let brr = arr.map {
"No."+String($0) 将元素转换为字符串并拼接No.
//$0+1 //将所有元素都加1
}
brr------>["No.1", "No.2", "No.4", "No.5"]
</pre>

2.flatMap函数

flatMap函数有两种重载形式。这两个重载的函数都是接受一个闭包作为参数,返回一个数组。
<pre>
public func flatMap<S : SequenceType>(transform: (Self.Generator.Element) throws -> S) rethrows -> [S.Generator.Element]
(Self.Generator.Element) -> S,并且这里 S 被定义成:S : SequenceType。所以它是接受数组元素,然后输出一个 SequenceType 类型的元素的闭包
let arr1 = [[1,2,3],[6,5,4]]
let frr = arr1.flatMap {$0} --->[1, 2, 3, 6, 5, 4]
let grr = Array(arr1.map { $0 }.flatten()) ---->[1, 2, 3, 6, 5, 4]
</pre>

<pre>
public func flatMap<T>(@noescape transform: (Self.Generator.Element) throws -> T?) rethrows -> [T]
flatMap 最终输出的数组结果,其实不是这个 T? 类型,而是这个 T? 类型解包之后,不为 .None 的元数数组:[T]
Return an Array containing the non-nil results of mapping 返回一个没有nil的map过的数组
let arr2:[Int?] = [1,2,nil,4,nil,5]
let hrr = arr2.flatMap {
$0
}
hrr -----> [1, 2, 4, 5]
flatMap 将数组中nil都丢弃了。只保留非空的值
</pre>

3.reduce函数

来对数组元素进行某种规则的求和(不一定是加和)
Return the result of repeatedly calling combine with an
accumulated value initialized to initial and each element of self, in turn
<pre>
public func reduce<T>(initial: T, @noescape combine: (T, Self.Generator.Element) throws -> T) rethrows -> T
initial:初始化的值,combine方法
let crr = arr.reduce(0) { (pre:Int, element:Int) -> Int in
return pre+element
}
上例中initial=0,也就是从0开始用某种规则求和。
pre表示:之前求和的结果 ---> 一开始是0
element:表示即将进入运算的数组中的元素 ---->第一个是 1
pre+element:表示求和的规则 ---->闭包里面的规则自己定义
</pre>
其他规则的求和
<pre>
let drr = arr.reduce("") {
if $0 == ""{
return String($1)
}else{
return $0+" "+String($1)
}
}
drr ------> "1 2 4 5"
</pre>

4.filter函数

返回符合条件的元素的数组
<pre>
public func filter(@noescape includeElement: (Self.Generator.Element) throws -> Bool) rethrows -> [Self.Generator.Element]

let err = arr.filter { (num:Int) -> Bool in
num%2==0 //需要符合的条件。
}
err -----> [2, 4]
</pre>

相关文章

  • React高阶组件

    介绍 将高阶组件之前先讲高阶函数,所谓高阶函数,就是接受一个或多个函数作为输入,或者输出一个一个函数的函数。而高阶...

  • 高阶函数介绍

    1.map函数 (Return an Array containing the results of mappin...

  • scala(六) 高阶函数

    介绍 高阶函数:以函数作为参数或返回值的方法(函数)称为高阶函数。我的理解是高阶函数是一种思想,它的作用能让我们的...

  • Kotlin学习 5 -- 高阶函数

    本篇文章主要介绍以下几个知识点:高阶函数内联函数noinline 与 crossinline高阶函数的应用内容参考...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • python中的高阶函数

    高阶函数:高阶函数是指包含函数参数的函数,在函数中利用另一个函数进行操作。本文将分别介绍map、reduce、fi...

  • 高阶函数

    上一篇已经介绍到了高阶函数map,本节继续讲解其余的几个高阶函数 map()函数 参数:接收一个函数 f 和一个 ...

  • python学习(三)函数式编程

    高阶函数 函数也是变量,函数参数为函数的函数,称作高阶函数 自定义高阶函数 内建高阶函数 map/reducema...

  • Swift高阶函数介绍

    最近了解Swift函数式编程,函数式编程的思想就是一切皆函数,函数作为一等公民,可以是被当作变量,参数,返回值。个...

  • 11.Lambda和高阶函数(Lambda and Higher

    高阶函数 kotlin_Lambda,高阶函数 *swift_高阶函数

网友评论

      本文标题:高阶函数介绍

      本文链接:https://www.haomeiwen.com/subject/iynrjttx.html