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

有人模仿qq音乐做的h5网站吗产品互联网推广

有人模仿qq音乐做的h5网站吗,产品互联网推广,南京林业大学实验与建设网站,户外运动网站模板在 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://www.dtcms.com/wzjs/257770.html

相关文章:

  • html5 经典网站网站数据分析
  • 网站备案授权书怎么填写高端网站优化公司
  • 学做蛋糕有哪些网站进入百度官网首页
  • 永久免费网站怎么创建关键词搜索热度
  • 广众人才网猎头网站建设关键词生成器
  • wordpress迁hexo优化搜索引擎
  • 保定网站公司那家好网络营销的缺点及建议
  • 网站怎么做更新吗互联网产品运营
  • 解析网站制作厦门seo管理
  • 搞笑网站建设目的和意义重庆seo博客
  • 短网址生成api接口在线刷seo
  • 上海市住房与城乡建设委员会网站seo快速排名服务
  • 合肥高端网站建设公司哪家好微信广告投放推广平台
  • 三明商城网站开发设计韶关新闻最新今日头条
  • 北京专业企业网站建设雷神代刷推广网站
  • 成都网站设计常凡云网络销售怎么做
  • 网站建设与管理代码外链的作用
  • 网站推广策略都有哪些产品经理培训哪个机构好
  • 庆阳市建设工程网上投标网站搜索引擎网络推广方法
  • 二级域名单独做网站指数函数求导
  • 用来做区位分析的地图网站百度电脑网页版入口
  • 企业做网站可以带中国吗各行业关键词
  • 大同市住房与城乡建设厅网站crm客户管理系统
  • 甘肃建投建设有限公司网站今日发生的重大国际新闻
  • 建阳网站建设搜索优化网络推广
  • 枣庄做网站的公司google浏览器网页版
  • 做日文网站今日国内热点新闻头条事件
  • wordpress注册登录关键词优化软件有哪些
  • 常州网站建设 最易百度百家官网入口
  • 网站三级分类网络推销