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

【第三阶段】kotlin语言的内置函数let

1.使用普通方法对集合的第一个元素相加

fun main() {//使用普通方法对集合的第一个元素相加var list= listOf(1,2,3,4,5)var value1=list.first()var result=value1+value1println(result)
}

执行结果
在这里插入图片描述
2.使用let内置函数对集合的第一个元素相加

package Stage3fun main() {//使用普通方法对集合的第一个元素相加var list= listOf(1,2,3,4,5)var value1=list.first()var result=value1+value1println("普通方式:$result")//let方法val result2=listOf(1,2,3,4,5).let {//it==list集合it.first()+it.first()//匿名函数的最后一行作为返回值,let特点  上文的apply永远返回对象本身}println("let方式:$result2")}

执行结果
在这里插入图片描述
3.apply和let的对比

  • apply函数的返回值类型永远都是对象本身,let函数的返回值类型根据最后一行的类型变化而变化。
  • apply函数,匿名函数里面持有的是this,let函数里面持有的是it

4.普通方式对值判null

package Stage3fun main() {//使用普通方法对集合的第一个元素相加var list= listOf(1,2,3,4,5)var value1=list.first()var result=value1+value1println("普通方式:$result")//let方法val result2=listOf(1,2,3,4,5).let {//it==list集合it.first()+it.first()//匿名函数的最后一行作为返回值,let特点  上文的apply永远返回对象本身}println("let方式:$result2")//普通方式对值判nullprintln(isNullvalue(null))
}fun isNullvalue(value:String?)=if(value==null)"我是null" else "我是$value"

执行结果
在这里插入图片描述
5.let+空合并操作符方式对值判null,并返回

package Stage3fun main() {//使用普通方法对集合的第一个元素相加var list= listOf(1,2,3,4,5)var value1=list.first()var result=value1+value1println("普通方式:$result")//let方法val result2=listOf(1,2,3,4,5).let {//it==list集合it.first()+it.first()//匿名函数的最后一行作为返回值,let特点  上文的apply永远返回对象本身}println("let方式:$result2")//普通方式对值判null,并返回println("普通方式:${isNullvalue(null)}")//let+空合并操作符对值判null,并返回println("let+空合并操作符(正常写法)对值判null${isNullvalue2(null)}")//简化写法println("let+空合并操作符(简化写法)对值判null${isNullvalue3(null)}")
}
//简化写法
fun isNullvalue3(value: String?)=value?.let {it
}?:"简化写法我是null"//正常写法
fun isNullvalue2(value: String?): String? {return value?.let {it}?:"我是null"
}fun isNullvalue(value:String?)=if(value==null)"我是null" else "我是$value"

执行结果
在这里插入图片描述

http://www.lryc.cn/news/136299.html

相关文章:

  • 【C++入门到精通】C++入门 —— 模版(template)
  • ARM汇编【3】:LOAD/STORE MULTIPLE PUSH AND POP
  • Python之Qt输出UI
  • 【1day】复现泛微OA某版本SQL注入漏洞
  • 安卓系列机型-禁止卸载某个APP 防止误卸载软件 无需root权限
  • 【算法系列篇】二分查找——这还是你所知道的二分查找算法吗?
  • 【前端从0开始】JavaSript——分支流程控制
  • Linux权限
  • PMP如何备考?学习方式这里有
  • 【Java转Go】快速上手学习笔记(四)之基础篇三
  • vue中form和table标签过长
  • java基础复习(第七日)
  • day24 | 理论基础、77. 组合
  • 数据结构(1)
  • 10个非常有用的Python库,你知道几个?
  • linux安装 MySQL8 并配置开机自启动
  • MySQL视图
  • Pytorch-day05-可视化-checkpoint
  • 实训笔记8.23
  • 2023年菏泽市中职学校技能大赛“网络安全”赛项规程
  • Android 13 - Media框架(6)- NuPlayer
  • 机器学习|DBSCAN 算法的数学原理及代码解析
  • 用NUXT.JS,轻松搞定SEO!
  • 什么是电商RPA?电商RPA能解决什么问题?电商RPA实施难点在哪里?
  • 【BUG】Docker启动MySQL报错
  • Spring Boot通过企业邮箱发件被Gmail退回的解决方法
  • Windows使用MobaXterm远程访问ubuntu20.04桌面
  • C++注释风格
  • Linux 编译内核模块出现--Unknown symbol mcount
  • Pywin32 Cookbook by Eric