Kotlin中怎么捕获上下文中的变量与常量-创新互联

这篇文章给大家介绍Kotlin中怎么捕获上下文中的变量与常量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

成都创新互联公司从2013年开始,是专业互联网技术服务公司,拥有项目网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元上城做网站,已为上家服务,为上城各地企业和个人服务,联系电话:13518219792

Lambda表达式或匿名函数可以访问或修改其所在上下文中的变量和常量,这个过程被称为捕获。

fun main(args: Array) { //定义一个函数,该函数的返回值类型为()->List fun makeList(ele: String): () -> List {  //创建一个不包含任何元素的List  var list: MutableList = mutableListOf()  fun addElement(): List {   //向list集合中添加一个元素   list.add(ele)   return list  }  return ::addElement }}

上例中顶一个一个局部函数,这个局部函数可访问或修改其所在函数中的变量。

Lambda表达式或匿名函数都会持有一个其所捕获的变量的副本,因此表面上看addElement()访问的是makeList()函数的list集合变量,但只要程序返回一个新的addElement()函数,addElement()函数就会持有一个新的list的副本。

Lambda表达式或匿名函数都会持有一个其所捕获的变量的副本,因此表面上看addElement()访问的是makeList()函数的list集合变量,只要程序返回一个新的addElement()函数,就会持有一个新的list的副本。

fun main(args: Array) { println("******add1返回的List**********") val add1 = makeList("刘备") println(add1()) println(add1()) println("******add2返回的List**********") val add2 = makeList("关羽") println(add2()) println(add2())}

输出结果:

******add1返回的List**********[刘备][刘备, 刘备]******add2返回的List**********[关羽][关羽, 关羽]

关于Kotlin中怎么捕获上下文中的变量与常量就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章题目:Kotlin中怎么捕获上下文中的变量与常量-创新互联
浏览地址:http://myzitong.com/article/cdsssi.html