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

温州网站建设温州网站制作数据采集发布 wordpress

温州网站建设温州网站制作,数据采集发布 wordpress,网站建设公司如何找客户,iis v6 新建网站文章目录 1. 概念介绍2. 使用方法2.1 函数类型的变量2.2 高阶函数 3. 内容总结4.经验分享 我们在上一章回中介绍了Jetpack中Icon和Imamg相关的内容#xff0c;本章回中主要介绍Kotlin中的 lambda、匿名函数和闭包。闲话休提#xff0c;让我们一起Talk Android Jetpack吧本章回中主要介绍Kotlin中的 lambda、匿名函数和闭包。闲话休提让我们一起Talk Android Jetpack吧 1. 概念介绍 关于lambda的概念比较抽象我们通过它的特征来描述它的概念由花括号包裹并且有箭头特征的表达式就是lambda,花括号是整个lambda的内容箭头前的内容是它的参数箭头后的内容是它的实现内容。 和lambda比较类似是的匿名函数和闭包匿名函数就是没有函数名的函数lambda也没有名称因此它们十分相似只有在函数有返回值的时候它们才不同匿名函数有明确的return语句而lambda表达式没有明确的返回语句它通常把实现内容中最后一个表达式的值当作返回值。 闭包比较好理解位于花括号中的内容就是闭包。虽然lambda也位于花括号内但是它只是闭包的一部分闭包中包含的内容不只是lambda,因此可以把lamdba看作是闭包的子集。 明白这些概念后我们通过具体的代码来演示它的使用方法。 2. 使用方法 2.1 函数类型的变量 //变量类型是函数使用匿名函数来赋值 var funValue:()-String fun():String{return this is a function} //变量类型是函数使用lambda来赋值 var funValue0:()-String {this is a function} //变量类型是函数使用匿名函数来赋值,省略变量类型 var funValue1 fun():String { return this is a function} //变量类型是函数使用lambda赋值,省略变量类型 var funValue11 {this is a function} //只有一行语句时花括号也可以省略 var funValue111 this is a function上面的示例代码中我们定义了变量funValueXXX为了区分不同的变量名称在尾部添加了多个数字,它的类型是函数类型我们先使用匿名函数给它赋值然后再使用lambda表达式给它赋值这样可以区分开匿名函数和lambda表达式的差异。 从代码中可以看到匿名函数的特点有关键字fun和return.相比之下lambda就可以省略这些关键字甚至连大括号也可以省略。接下来我再演示一个复杂一些函数类型。 //变量类型是函数函数有参数但是无返回值使用匿名函数来赋值,这做做法也叫类型实例化 var funValue2:(values:Int)-Unit fun (values:Int){ this is a function,param:$values} //变量类型是函数函数有参数但是无返回值使用匿lambda来赋值,这做做法也叫类型实例化 var funValue21:(values:Int)-Unit {values - this is a function,param:$values} //变量类型是函数函数有参数和返回值使用匿名函数来赋值 var funValue31:(values:Int)-String fun(values):String {return this is a function,param:$values} //变量类型是函数函数有参数和返回值使用lambda来赋值 var funValue32:(values:Int)-String {values - this is a function,param:$values} //变量类型是函数使用lambda来赋值,省略了参数只有一个参数时使用it代替参数,it是单个参数的隐式名称 var funValue33:(values:Int)-String { this is a function,param:$it}上面的示例代码中我们定义了变量funValueXXX为了区分不同的变量名称在尾部添加了多个数字,它的类型是函数类型这个函数带有参数而且分有返回值和无返回值的两种情况。我们先使用匿名函数给它赋值然后再使用lambda表达式给它赋值这样可以区分开匿名函数和lambda表达式的差异。 从代码中可以看到当函数类型中包含返回值时匿名函数的内容比lambda多lambda显得相对简洁一些。当函数类型中带有参数时lambda表达式显得更加简洁。 看了这么多示例可以得出lambda表达式最大的特征就是有箭头。此外lambda表达式还有一个语法就是省略参数使用it来代替参数。这个语法在compose中经常使用。 2.2 高阶函数 高阶函数就是函数的参数或者返回值的类型是其它函数相当于把函数当作变量传递给高阶函数的参数或者当作高阶函数的返回值。下面是我们通过示例代码来演示 //高阶函数:函数的参数或者返回值是其它的函数相当把函数当作数值来使用 fun inFun(name:String,age: Int):String {return nameage } //只有一行语句时可以省略大括号和return fun inFun1(name:String,age: Int):String nameage //返回类型可以通过类型推导出来也可以省略 fun inFun2(name:String,age: Int) nameage//函数的第二个参数是函数类型 fun outFun(id:Int,type:(s:String,a:Int)-String):String {val age (1..10).random()println(inFun(Sam ,age))println(id: $id, type: $type)return age $age }//通过函数引用把命名函数具名函数inFun1当作参数传递给outFun函数 var res outFun(3, ::inFun1) //把匿名函数当作参数传递给outFun函数,注意关键字fun不能省略 var res1 outFun(33,fun(s:String,a:Int):String{return str $s ,$a})//使用lambda表达式代替匿名函数把lambda表达式传递给outFun函数 //注意lambda必须使用花括号包起来箭头前是参数箭头后是函数体 //注意匿名函数的return不能省略lambda的可以省略而且通常是最后一个表达式的值 var res2 outFun(33,{s:String,a:Int-str $s ,$a}) //省略lambda表达式中的参数类型返回类型return关键字 var res3 outFun(33,{s,a-str $s ,$a}) //函数的最后一参数是lambda时可以将其移动到括号外面(这叫尾lambda) var res4 outFun(33){s,a-str $s ,$a}上面的示例代码中包含高阶函数该函数的参数是函数类型从示例代码中可以看到使用lambda表达式传递参数比匿名函数传递参数的代码要简洁一些。代码中介绍了函数的两种语法 通过等号来实现简单函数体进而省花括号和return关键字通过函数引用(两个冒号)来传递命名函数给高阶函数 代码中还介绍一种尾lambda的语法当lambda是高阶函数的最后一个参数时可以将它移动到高阶函数的外面也就是花括号中。这个语法在compose中十分常见。 3. 内容总结 最后我们对本章回中的内容做一个总结 lambda和匿名函数十分类似它们都可以用来给函数类型的变量赋值或者和高阶函数一起使用与lambda表达式类似还有闭包它的范围比较广lambda只是它的一个子集匿名函数的特征就是没有函数名但是有fun和return关键字lambda表达式的特征就是有箭头和花括号在大部分场景下lambda的语法更加简洁 4.经验分享 关于lambda表达式和匿名函数的语法大家普通的反应就是看不懂代码。这就是代码简洁与代码易懂之间的茅盾我在开始看这类代码时也有同样的感觉我的经验就是尽量让代码保持简洁如果感觉读不懂代码那么多动手练习一下就可以掌握这种难理解的语法。比如上面的示例代码都是我自己对匿名函数和lambda表达式的理解多写一些就会明白其中的原理到时候就能读懂代码了。 此外还有一些特殊的语法只能是硬记语法规则这个没有任何窍门好在特殊内容比较少比如前面小节中介绍的尾lambda和it。 我最开始看这类代码是在Java中还记得给Button添加监听器(setOnClickListener)就是使用匿名函数刚开始不理解但是写多了就养成了习惯反而觉得这种写法十分方便。我把这个学习经验从Java迁移到了Kotlin中在此分享给大家希望对大家有帮助。 看官们关于Kotlin中的lambda、匿名函数和闭包就介绍到这里欢迎大家在评论区交流与讨论
http://www.pierceye.com/news/802917/

相关文章:

  • 做语音聊天网站要多少钱app界面设计模板素材免费
  • 设计网站专题页包括那些项目个人做网站要买什么域名
  • 建网站 方法中信建设有限责任公司获奖
  • 做宠物商品的网站无锡自适应网站开发
  • 网站后台怎样登陆做网站数据库及相关配置
  • 昆明seo网站排名网站代码 输入文字 跳出内容
  • 济南建站公司网站广州市网站设计
  • 网站模板做的比较好的公司网站制作汇报会
  • 个人网站图片海外网站备案
  • 兰州手机网站制作公司哪家好网店分销平台
  • 百度建立自己的网站网络工程师培训课程
  • 微网站的制作过程海南注册公司怎么注册
  • 公司网站制作投标建站行业都扁平化设计
  • 男女做a视频网站wordpress询价功能
  • 网站建设视频百度网盘下载我做网站价格
  • 江苏省建设集团有限公司网站首页东莞网络推广外包
  • 梁平网站建设莱芜网络营销
  • 自学网站建设需要什么学历学校网站建设总结报告
  • 增城新塘网站建设平面设计技术培训机构
  • 游戏网站开发视频运动品牌网页设计
  • 成都比较好的网站建设公司做视频后期的网站
  • 重庆网页搜索排名提升专业seo优化推广
  • 手机免费代理ip网站模板网站的优势有哪些
  • dede地方门户网站模板做网站备案
  • 域名访问网站的知识站酷网官网进入
  • 6入空间网站免费观看wordpress转盘抽奖源码
  • 手机网站怎么开发工具网站开发中如何实现gps定位
  • sql2008做网站焦作网站建设哪家便宜
  • hao123网站源码制作2015最新仿制作链接怎么做
  • 做网站源代码需要买吗做任务得佣金的网站