----《第一季Kotlin崛起:次世代Android开发 》学习笔记
总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin -- Lambda 表达式
下一篇:每天学一点 Kotlin -- 集合:Array 数组
1. 高阶函数
1.1 接受一个参数是函数类型的函数,或者返回一个函数类型的值,就可以称为高阶函数。
1.2 在文章: 每天学一点 Kotlin -- Lambda 表达式 中,函数 add1() 和 add2() 就是高阶函数。
1.3 通常在 Collection 集合类型中频繁使用其相关库提供的高阶函数。如果想研究高阶函数,Kotlin集合类型的源码是个很好的捷径。
2. 顶层函数引用
2.1 在 Collection 集合类型中,对于 filter 这样的高阶函数,直接写 Lambda 表达式是最好的,但如果已有一个定义好的顶层函数(即闭包之外的函数),可以用如下的两种方式:
fun isEven(a : Int) = a % 2 == 0
val dd = arrayOf(5, 4, 3).filter{ isEven(it) }
val gg = arrayOf(5, 4, 3).filter(::isEven)
2.2 注意,一元操作符“::”要写在函数名之前,花括号要改成正常函数调用的圆括号。
3. 成员函数和扩展函数的引用
3.1 使用函数引用的好处是可以进一步简化写法,利用已有的函数定义省略参数。
3.2 当然,函数引用这样的写法在输入更多参数时就不好用了,这时候不得不使用完整的 Lambda 表达式写法。