koltin(高阶函数)
高阶函数
定义
高阶函数就是以另一个函数为参数,或者返回值为函数的函数。例如常用的filter,map,with等都是高阶函数
函数类型
- 函数类型必须显示的表示出来,如Unit在普通函数中可以隐藏。但是在函数类型的声明中,必须完整的写出来。
- 当你已经声明了函数类型后,你再写lambda函数,就可以省略掉lambda函数里的参数类型,而直接写他的参数名。
- 同样的,函数类型也有可空的。但是有两点区分 一个是返回类型的可空,一个是函数类型的可空。
1
2
3
4
5
6val testNull1: (Int) -> Int? = { null }
val testNull2: ((Int) -> Int)? = null
val testError: (Int) -> Nothing = {
throw Exception("Error")
}
在java中使用函数类
其背后原理为:函数类型在编译后会被声明为一个普通的接口,一个函数类型的变量就是FunctionN的一个实现。kolitn定义了一系列接口,包括不同数量的参数,Function0
1 | //java8后的版本 |
- 函数类型的参数也可以设置一个默认值
- 函数也可以返回一个函数,通常用于返回一个常用的逻辑。
- 也可以通过lambda函数实现合并提取出重复代码,简化整体。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小贺同学的blog!
评论