Kotlin高阶函数<一>

2020-02-09  本文已影响0人  安仔夏天勤奋

高阶函数

什么样的函数才是高阶函数呢?又怎么使用啊?直接贴上代码:

方式一

fun main(){
    fun test(a:String,display:(String)->Unit){
        display(a)
    }
    //使用
    test("666"){
        //第二个参数是lambda表达式,这个参数可以放后面
    }
}

display:(String)->Unit 既是一个lambda表达式也是一个函数,这就是一个高价函数。这个高阶函数使用时,第二个参数是lambda表达式(即test("666"){}),这个参数可以放后面。

方式二

函数当参数传递

fun main(){
    fun test1(a:()->Unit):Unit{ //函数当参数传递
        //再定义一个函数
        fun test2(){
            a()
        }
        return test2() //test2()作为一个函数返回出去
    }
    
    fun hello(){
        println("hello world")
    }
    //调用
    test1(::hello)
}

a:()->Unit,函数当参数传递,在test1函数内还可以定义函数,也可以将一个函数作返回值返回出去。test1函数还有另一种写法。代码如下:

typealias FunType = ()->Unit
fun main(){
    //另一写法
    fun test3(a:FunType):Unit{ //函数当参数传递
        //再定义一个函数
        fun test2(){
            a()
        }
        return test2() //test2()作为一个函数返回出去
    }
}

Kotlin库中常用的高价函数

协程

后续再添加。。。。

上一篇 下一篇

猜你喜欢

热点阅读