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

住房和城乡建设厅网站办事大厅杭州江干区抖音seo品牌

住房和城乡建设厅网站办事大厅,杭州江干区抖音seo品牌,设计之家房屋装修游戏,给网站做外链要注意哪些1. Lambda表达式 Lambda就是一小段可以作为参数传递的代码,在kotlin中的标准形式为: {参数名1: 参数类型, 参数名2: 参数类型 - 函数体}标准形式使用如下: val list listOf(Apple, Banana, Orange, Pear, Grape 函数体}标准形式使用如下: val list listOf(Apple, Banana, Orange, Pear, Grape, Watermelon) val lambda { fruit: String - fruit.length } val maxLengthFruit list.maxBy(lambda)1.1 省略Lambda变量 上面的例子中我们使用了一个变量lambda来记录Lambda表达式,实际上我们可以省略这个变量,直接将表达式传入函数中 val maxLengthFruit list.maxBy({ fruit: String - fruit.length })1.2 表达式外移 当Lambda参数是函数的最后一个参数时可以将Lambda表达式移到函数括号的外面 val maxLengthFruit list.maxBy() { fruit: String - fruit.length }1.3 省略括号 如果Lambda参数是函数的唯一一个参数的话还可以将函数的括号省略 val maxLengthFruit list.maxBy { fruit: String - fruit.length }1.4 省略参数类型 由于Kotlin拥有出色的类型推导机制Lambda表达式中的参数列表其实在大多数情况下不必声明参数类型 val maxLengthFruit list.maxBy { fruit - fruit.length }1.5 省略参数名 当Lambda表达式的参数列表中只有一个参数时也不必声明参数名而是可以使用it关键字来代替 val maxLengthFruit list.maxBy { it.length }在实际的使用中,可以根据具体的情况采用不同的表达形式 2. 空指针检查 Kotlin在编译时进行判空检查,默认所有的参数和变量都不为空, 如果需要使用null作为参数,那么需要采用另外一套可为空的参数系统. 2.1 参数类型后面加?表示可以为空 如:Int? String? Double? 2.2 判空辅助操作符 ?. 当对象不为空时正常调用相应的方法当对象为空时则什么都不做,例如: if (a ! null) {a.doSomething() }可以简化为: a?.doSomething()2.3 操作符?: 这个操作符的左右两边都接收一个表达式如果左边表达式的结果不为空就返回左边表达式的结果否则就返回右边表达式的结果. val c if (a ! null) {a } else {b }这段代码的逻辑使用?:操作符就可以简化成 val c a ?: b2.4 将?.和?:操作符结合使用 fun getTextLength(text: String?): Int {if (text ! null) {return text.length}return 0 }可以简化为: fun getTextLength(text: String?) text?.length ?: 0首先由于text是可能为空的因此我们在调用它的length字段时需要使用?.操作符而当text为空时text?.length会返回一个null值这个时候我们再借助?:操作符让它返回0. 2.5 非空断言工具 !! 在对象的后面加上!!,表示不需要kotlin在此进行非空检查,慎用!! 2.6 let函数 这个函数提供了函数式API的编程接口并将原始调用对象作为参数传递到Lambda表达式中。示例代码如下 obj.let { obj2 -// 编写具体的业务逻辑 }这里调用了obj对象的let函数然后Lambda表达式中的代码就会立即执行并且这个obj对象本身还会作为参数传递到Lambda表达式中。不过为了防止变量重名这里将参数名改成了obj2但实际上它们是同一个对象这就是let函数的作用.  let函数的特性配合?.操作符可以在空指针检查的时候起到很大的作用 fun doStudy(study: Study?) {study?.let { stu -stu.readBooks()stu.doHomework()} }?.操作符表示对象为空时什么都不做对象不为空时就调用let函数而let函数会将study对象本身作为参数传递到Lambda表达式中此时的study对象肯定不为空了我们就能放心地调用它的任意方法了.  当Lambda表达式的参数列表中只有一个参数时可以不用声明参数名直接使用it关键字来代替即可那么代码就可以进一步简化成: fun doStudy(study: Study?) {study?.let {it.readBooks()it.doHomework()} }let函数是可以处理全局变量的判空问题的而if判断语句则无法做到这一点。因为全局变量的值随时都有可能被其他线程所修改即使做了判空处理仍然无法保证if语句中的study变量没有空指针风险。从这一点上也能体现出let函数的优势。 3. 函数参数默认值 3.1 设置参数默认值 kotlin在定义函数的时候给任意参数设定一个默认值这样当调用此函数时就不会强制要求调用方为此参数传值在没有传值的情况下会自动使用参数的默认值. fun printParams(num: Int, str: String hello) {println(num is $num , str is $str) }当调用printParams()函数时可以选择给第二个参数传值也可以选择不传在不传的情况下就会自动使用默认值. 3.2 使用键值对方式传参 如果是第一个参数设定了默认值呢,那我们不想传第一个参数时怎么办呢,如果直接传递第二个参数将会报类型不匹配的错误,这个时候需要使用键值对的方式来进行传参.比如调用printParams()函数我们还可以这样写 printParams(str world, num 123)此时哪个参数在前哪个参数在后都无所谓Kotlin可以准确地将参数匹配上.
http://www.zqtcl.cn/news/942582/

相关文章:

  • 网站开发项目业务要求wordpress前台注册登陆
  • 上海人才网官网招聘人力资源专业wordpress seo title
  • 简单html网站网页设计培训学费多少
  • 麻城网站建设投标网招标网
  • 网站建设行业细分专业动漫如何制作
  • 做地方网站数据哪里来模板网站建设教程视频
  • 株洲建设网站制作网络怎么推广自己的产品
  • dtu网站开发赣县网站制作
  • 东莞旅游网站建设微网站怎么做
  • 网站怎么没有排名做义工旅行有哪些网站
  • 阳江房地产信息网官方网站创业网站开发要多少钱
  • 工业设计招聘信息网站常用的seo网站优化排名
  • 温岭市建设规划局网站网站规划与建设ppt
  • 龙岩网站建设较好的公司做网站销售的换工作
  • 潞城建设局网站建设网站服务器自营方式的特点
  • 西安网站seo公司东莞市专注网站建设怎么样
  • dede游戏网站模板如何做盆栽蔬菜网站
  • 江都建设网站网站开发技术介绍
  • 网站介绍视频怎么做网站建设优化服务
  • 可以左右滑动的网站有口碑的盐城网站建设
  • 360报危险网站注册界面设计
  • 不用淘宝客api如何做网站北京移动官网网站建设
  • 手表哪个网站做的好河北网站备案流程
  • 凡科做的网站推效果网站做seo第一步
  • 建设在线观看视频网站免费企业网站建设免费
  • 网站开发需要后台吗哪家建站公司好
  • 个人建设网站论文网站视频怎么做的
  • 不同类型的购物网站汉川网站建设
  • 网站开发需求文档范文广州公司网站托管
  • 网站制作公司官网首页撸撸撸做最好的导航网站