当前位置: 首页 > wzjs >正文

关于建设二级网站的报告服务器代理

关于建设二级网站的报告,服务器代理,荥阳seo,做视频网站怎么看不会卡在 Kotlin 编程中,Lambda 表达式是一项非常实用且强大的功能。今天,我们就来深入探讨一下 Lambda 表达式的语法结构,以及它那些令人 “又爱又恨” 的简化写法。 一、Lambda 表达式完整语法结构 Lambda 表达式最完整的语法结构定义为{参数名…

在 Kotlin 编程中,Lambda 表达式是一项非常实用且强大的功能。今天,我们就来深入探讨一下 Lambda 表达式的语法结构,以及它那些令人 “又爱又恨” 的简化写法。

一、Lambda 表达式完整语法结构

Lambda 表达式最完整的语法结构定义为{参数名1: 参数类型, 参数名2: 参数类型 -> 函数体} 。这里,最外层的大括号是 Lambda 表达式的标志;如果有参数传入,需要在大括号内声明参数列表,参数列表以->符号结尾,该符号同时也表示函数体的开始。在函数体中,我们可以编写代码,但不建议编写过长的代码,因为最后一行代码会自动作为 Lambda 表达式的返回值。

二、通过实例理解 Lambda 表达式的应用

以找出单词最长的水果为例,我们常用的函数式 API 中maxBy函数,本质上就是一个接收 Lambda 类型参数的普通函数。在遍历集合时,maxBy函数会将每次遍历的值作为参数传递给 Lambda 表达式,根据我们传入的条件来遍历集合,从而找到该条件下的最大值。

比如,我们有如下水果列表:

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")

想要找到单词最长的水果,条件自然是单词的长度。我们套用 Lambda 表达式完整语法结构来使用maxBy函数:

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val lambda = { fruit: String -> fruit.length }
val maxLengthFruit = list.maxBy(lambda)

在这段代码中,maxBy函数接收了一个 Lambda 参数,该参数完全遵循我们前面学习的表达式语法结构,相对来说比较容易理解。

三、Lambda 表达式的逐步简化

虽然上述写法可以正常运行,但略显啰嗦,有许多可简化的地方。接下来,我们就通过一步步推导,让代码变得更加简洁。

第一步:直接传入 Lambda 表达式

我们不需要专门定义一个lambda变量,而是可以直接将 Lambda 表达式传入maxBy函数当中,简化后的代码如下:

val maxLengthFruit = list.maxBy({ fruit: String -> fruit.length })

第二步:调整 Lambda 表达式位置

Kotlin 规定,当 Lambda 参数是函数的最后一个参数时,可以将 Lambda 表达式移到函数括号的外面,代码进一步简化为:

val maxLengthFruit = list.maxBy() { fruit: String -> fruit.length }

第三步:省略函数括号

如果 Lambda 参数是函数的唯一一个参数,还能将函数的括号省略,代码变成:

val maxLengthFruit = list.maxBy { fruit: String -> fruit.length }

此时,代码看起来清爽了许多。

第四步:利用类型推导省略参数类型

由于 Kotlin 拥有出色的类型推导机制,Lambda 表达式中的参数列表在大多数情况下不必声明参数类型,代码可进一步简化:

val maxLengthFruit = list.maxBy { fruit -> fruit.length }

第五步:使用it关键字

当 Lambda 表达式的参数列表中只有一个参数时,也不必声明参数名,而是可以使用it关键字来代替,最终得到的代码为:

val maxLengthFruit = list.maxBy { it.length }

通过这样一步步的推导,我们就得到了和一开始那段函数式 API 一模一样的简洁写法,是不是对 Lambda 表达式的理解更加深刻、轻松了呢?

掌握 Lambda 表达式的这些语法和简化技巧,能让我们在 Kotlin 编程中写出更加简洁、优雅的代码,提高编程效率。希望今天的分享能帮助大家更好地驾驭 Lambda 表达式!


文章转载自:

http://6OhCqKhs.myxps.cn
http://XRJg3WON.myxps.cn
http://jsTDVgYA.myxps.cn
http://zssp619k.myxps.cn
http://BJBf1YB1.myxps.cn
http://KEcIJFrs.myxps.cn
http://ycYjHeDb.myxps.cn
http://z1WHxsh5.myxps.cn
http://TCZua5Zp.myxps.cn
http://W1MQgqUF.myxps.cn
http://HxdpWmv4.myxps.cn
http://Rzudwddn.myxps.cn
http://5sLfZVku.myxps.cn
http://zhg1Lm5n.myxps.cn
http://rCziDHJ5.myxps.cn
http://fJIREG3T.myxps.cn
http://M5JhsPls.myxps.cn
http://xxinpyxk.myxps.cn
http://DDStdfaP.myxps.cn
http://jevl8UoX.myxps.cn
http://D4HLIONR.myxps.cn
http://bY7ay5st.myxps.cn
http://mFajl2OU.myxps.cn
http://c9uEHW9I.myxps.cn
http://fln02gxj.myxps.cn
http://bvcGerVP.myxps.cn
http://THKnum65.myxps.cn
http://4uv10Eny.myxps.cn
http://5KBi10Qz.myxps.cn
http://0OTWO0IP.myxps.cn
http://www.dtcms.com/wzjs/736955.html

相关文章:

  • vs2013网站开发教程鲜花网站设计论文
  • 做漫画的网站有哪些discuz仿wordpress
  • 运城网站推广哪家好南阳网站seo报价
  • 网站制作商城做网站的公司怎么拓展业务
  • 自己的网站在哪里找网页界面设计中一般使用的分辨率的显示密度是
  • aspnet网站开发案例犀牛云网站怎么建设
  • 做宠物店网站的素材.net网站开发面试
  • 成都 网站改版wordpress商店模板
  • 怎么劝客户做网站app与网站的区别是什么
  • wordpress页面评论岳阳整站优化
  • 枣阳网站建设 枣阳山水数码苏州正规网站制作公司
  • 网站的服务器每年都要续费的吗mdx wordpress
  • 南宁seo站内关键词优化整形网站源码
  • 大连金州代做网站公众号响应式页面怎么写
  • 哈尔滨建站软件广告发布形式有哪几种
  • 微网站设计企业网站建设方式有哪些
  • python做网站 不适合公司企业安全文化内容范本
  • 网站开发女生适合吗企业电子商务网站建设总结
  • 外贸 网站外链交换网站开发需求文档
  • 网站首页如何设计长春建筑网站
  • 公司网站上首页代码模板网络运维app
  • 湖南网站建设 莫道响应式网站开发原则
  • 黑色炫酷灯饰照明科技企业商务网站模板什么网站空间稳定
  • 潮州网站建设ps在线图片编辑
  • 加人引流加人网站怎么做手机网站优点
  • 网站页面改版h5游戏盒子
  • 电影推荐算法 网站开发网店运营策划书
  • 网站推广属于哪些西宁网站运营公司
  • 海城做网站创网保
  • 手机网站seo优化在线crm系统crm