kotlin的高阶函数是kotlin的一大特色,简写的方式,让人摸不着头脑,今天来记录一下
高阶函数的特点:函数的参数是一个函数类型,或者函数的返回值类型是一个函数类型
高阶函数1
-
- //创建一个高阶函数,不带返回值,且函数型参数也是不带返回值的
- private fun gj(
- zs:()->Unit
- ){
- zs.invoke()
- }
-
-
- //创建一个高阶函数,带返回值,且函数型参数也带返回值
- private fun name(
- zs:()->Int
- ):Int{
- return zs.invoke()
- }
-
-
- //创建一个带参数的普通函数
- private fun red(a:Int,b:Int):Int{
- return a-b;
- }
-
- //创建一个普通函数
- private fun add(){
- LogUtil.e("普通函数不带返回值")
- }
- -----------------------------------------------------------------------------------
- gj{add()} //gj的函数型参数是不带返回值的,add不带返回值可以传
- gj { red(1,2) } //gj的函数型参数不带返回值,red函数是带返回值的也能传
-
-
- name { add() } //name的函数型参数是带返回值,add不带返回值,报错,不能这样传
-
- val r = name{ //name的函数型参数是带返回值,red带返回值,能传