欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin如何捕獲上下文中的變量與常量詳解

 更新時間:2019年08月06日 10:33:57   作者:Hunter_Arley  
這篇文章主要給大家介紹了關(guān)于Kotlin如何捕獲上下文中的變量與常量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Kotlin具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

Lambda表達(dá)式或匿名函數(shù)可以訪問或修改其所在上下文中的變量和常量,這個過程被稱為捕獲。

fun main(args: Array<String>) {
 //定義一個函數(shù),該函數(shù)的返回值類型為()->List<String>
 fun makeList(ele: String): () -> List<String> {
  //創(chuàng)建一個不包含任何元素的List
  var list: MutableList<String> = mutableListOf()
  fun addElement(): List<String> {
   //向list集合中添加一個元素
   list.add(ele)
   return list
  }
  return ::addElement
 }
}

上例中頂一個一個局部函數(shù),這個局部函數(shù)可訪問或修改其所在函數(shù)中的變量。

Lambda表達(dá)式或匿名函數(shù)都會持有一個其所捕獲的變量的副本,因此表面上看addElement()訪問的是makeList()函數(shù)的list集合變量,但只要程序返回一個新的addElement()函數(shù),addElement()函數(shù)就會持有一個新的list的副本。

Lambda表達(dá)式或匿名函數(shù)都會持有一個其所捕獲的變量的副本,因此表面上看addElement()訪問的是makeList()函數(shù)的list集合變量,只要程序返回一個新的addElement()函數(shù),就會持有一個新的list的副本。

fun main(args: Array<String>) {
 println("******add1返回的List**********")
 val add1 = makeList("劉備")
 println(add1())
 println(add1())

 println("******add2返回的List**********")
 val add2 = makeList("關(guān)羽")
 println(add2())
 println(add2())
}

輸出結(jié)果:

******add1返回的List**********
[劉備]
[劉備, 劉備]
******add2返回的List**********
[關(guān)羽]
[關(guān)羽, 關(guān)羽]

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Android運用BroadcastReceiver實現(xiàn)強制下線

    Android運用BroadcastReceiver實現(xiàn)強制下線

    本篇文章主要介紹了Android運用BroadcastReceiver實現(xiàn)強制下線,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android仿手機QQ圖案解鎖功能

    Android仿手機QQ圖案解鎖功能

    這篇文章主要為大家詳細(xì)介紹了Android仿手機QQ圖案解鎖功能的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android Tiny集成圖片壓縮框架的使用

    Android Tiny集成圖片壓縮框架的使用

    本篇文章主要介紹了Android Tiny集成圖片壓縮框架的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Android中使用背景色Alpha值遇到的一個坑

    Android中使用背景色Alpha值遇到的一個坑

    通過修改Alpha值可以對透明度進(jìn)行設(shè)置,這個大家應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Android中使用背景色Alpha值遇到的一個坑,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • Android 判斷所有字段是否已經(jīng)輸入的實例

    Android 判斷所有字段是否已經(jīng)輸入的實例

    今天小編就為大家分享一篇Android 判斷所有字段是否已經(jīng)輸入的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android編程自定義進(jìn)度條顏色的方法詳解

    Android編程自定義進(jìn)度條顏色的方法詳解

    這篇文章主要介紹了Android編程自定義進(jìn)度條顏色的方法,結(jié)合實例形式分析了Android進(jìn)度條顏色相關(guān)的屬性設(shè)置操作技巧,需要的朋友可以參考下
    2017-09-09
  • Android TextView字幕效果實例

    Android TextView字幕效果實例

    本文將介紹Android TextView字幕效果的實現(xiàn)方法,需要的朋友可以參考下
    2012-11-11
  • Android Studio手動打包的教程圖解

    Android Studio手動打包的教程圖解

    項目寫完了,現(xiàn)在需要把應(yīng)用上傳到市場上面,那么怎么把項目打包成apk呢?下面腳本之家小編給大家?guī)砹薃ndroid Studio手動打包的方法,一起看看吧
    2018-07-07
  • 基于RxJava框架實現(xiàn)獲取驗證碼的輔助類

    基于RxJava框架實現(xiàn)獲取驗證碼的輔助類

    這篇文章主要為大家詳細(xì)介紹了基于RxJava框架實現(xiàn)獲取驗證碼的輔助類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • android中Bitmap用法(顯示,保存,縮放,旋轉(zhuǎn))實例分析

    android中Bitmap用法(顯示,保存,縮放,旋轉(zhuǎn))實例分析

    這篇文章主要介紹了android中Bitmap用法,以實例形式較為詳細(xì)的分析了android中Bitmap操作圖片的顯示、保存、縮放、旋轉(zhuǎn)等相關(guān)技巧,需要的朋友可以參考下
    2015-09-09

最新評論