一文带你了解kotlin中的闭包

 相信不少搞java的童鞋刚开始都会困惑kotlin中经常中看到的闭包到底是个什么东西。我们简单点的理解就是{ },我们来举个例子如:fun test() { //闭包 }

然后我们在来看看闭包可以做些什么。首先闭包需要知道闭包有些什么

1.函数的运行环境 
        2.持有函数运行状态 
        3.支持在闭包里面定义函数 
        4.支持在闭包里面定义类

在让我们来看一个例子

fun test(): () -> Unit {
    var a = 0
     fun test2(){
         print(a)
     }
    return fun() {
        a++
        println(a)
    }
}

我们可以看到在test函数里面又定义了一个test2()的函数 ,并且返回了一个函数 而这些在java中都是不支持的

而函数中可以定义函数和返回函数又有什么优势呢,我们再来看一个例子。

  inline fun talk(area: (name:String)->String, noinline area2: (name:String)->String):String{
        return area("你猴")+ area2("泥猴")
    }

调用:

talk({name ->"$name 1"},{name ->"$name 2"})

输出结果为

 

  

 我们可以将函数传递到另一个函数当中从而实现面试函数式编程。而面向函数式变成有什么好处我们在本文中就不做展开了

谢谢各位看官

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章