网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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中怎么捕获上下文中的变量与常量
分享URL:http://bjjierui.cn/article/gghesi.html

其他资讯