我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Kotlin中怎么捕获上下文中的变量与常量

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

成都创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为名山企业提供专业的成都网站设计、做网站,名山网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

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://shouzuofang.com/article/gghesi.html

其他资讯