每天学一点 Kotlin -- 高阶函数

----《第一季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 表达式写法。

相关代码:https://gitee.com/fzq.com/test-demo
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容