一文帶你瞭解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"})

輸出結果爲

 

  

 我們可以將函數傳遞到另一個函數當中從而實現面試函數式編程。而面向函數式變成有什麼好處我們在本文中就不做展開了

謝謝各位看官

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