1、let

在let作用域内默认可使用it指代调用的对象,也可自定义命名。有返回值,返回值为最后一行或指定return表达式

val count = "hello".let { it.plus("1")print("${it.length}")it.length    //返回值}

自定义命名

val count = "hello".let { strHello ->strHello.plus("1")print("${strHello.length}")strHello.length}

2、with

with(传参数)作用域内可使用this指代该传入的对象,使用其属性和方法。有返回值,返回值为最后一行

val hello = "hello"val world = "world"val pair = Pair(hello, world)val numWorld = with(pair){val lengthHello = this.first.lengthsecond.length    //返回值}

3、run

run作用域内使用this指代调用者对象。有返回值,返回值为最后一行

val hello = "hello"val world = "world"val pair = Pair(hello, world)val strWorld = pair.run {val lengthHello = this.first.lengthval lengthWorld = second.lengthsecond  //返回值}

4、also

also作用域内使用it指代调用者。有返回值,返回值为调用者自身。

val hello = "hello"val world = "world"val pair = Pair(hello, world)val strReceive: Pair<String, String> = pair.also {val lengthHello = it.first.lengthval lengthWorld = it.second.length}strReceive.first.showToast()

因为also返回值为对象自身,所以也可以修改以上代码为链式调用。

val hello = "hello"val world = "world"val pair = Pair(hello, world)pair.also {val lengthHello = it.first.lengthval lengthWorld = it.second.length}.first.showToast()

5、apply

apply作用域内使用this指代该对象。有返回值,返回值为该对象自身。

//数据类
data class Person(var name: String = "",var age: Int = 0)
val modifyPerson = Person().apply {name = "aaa"age = 10}modifyPerson.name.showToast()   //此时name="aaa"

Kotlin的let,with,run,also和apply相关推荐

  1. Kotlin实战指南十:let、apply、with、run

    转载请标明出处:https://blog.csdn.net/zhaoyanjun6/article/details//94402604 本文出自[赵彦军的博客] 文章目录 let 示例1:基础用法 示 ...

  2. kotlin作用域函数let run whith apply also 的区别takeIf 的用法

    本质区别 有两个主要区别: 引用上下文对象的方式 this 和it 使用this则具备上下文,可以省略this 而it不能省略了,因为它是参数. 返回值 apply also返回上下文对象.let,r ...

  3. Kotlin中let、run、with、apply及also的差别

    /   今日科技快讯   / 近日,微软刚刚发布了新版操作系统Windows 11,包括全新的设计和诸多新功能,并且能够直接运行安卓应用.该公司首席执行官兼董事长萨蒂亚·纳德拉随后接受媒体专访,他称希 ...

  4. Kotlin 标准库中run、let、also、apply、with函数的用法和区别

    run 函数 定义: inline fun <R> run(block: () -> R): R //1 Calls the specified function block and ...

  5. kotlin内联函数let、with、run、apply、also

    最近面试被问到kotlin内联函数,这里作个简单的总结 let 在函数体内访问该对象中的属性或方法 iv_back_activity_clock.let {it.adjustViewBounds = ...

  6. Kotlin学习之----内置函数apply、let、run、with、also的使用

    目录 总结: 一.apply 用法: info.apply{} 二.run用法 : info.run{} 三.let用法:info.let{} 四.with用法 : with(info) 五.also ...

  7. kotlin中标准函数的使用(with、also、aply、let、run)

    目录 一.简介 二.let 三.with 三.run 四.apply 五.also 六. run的两种方式为什么this作用域不一样,一个是 调用该函数所在的实例,一个是T对象本身实例 七.为什么le ...

  8. 【Kotlin】apply 内联扩展函数 ( apply 函数原型 | apply 函数示例 | Kotlin 调用 Java API )

    文章目录 I . 内联扩展函数 apply II . Kotlin 调用 Java API III . apply 内联扩展函数示例 ( 调用 Java API 处理图像 ) I . 内联扩展函数 a ...

  9. kotlin中mainactivity无法直接调用xml中的控件_使用Kotlin高效地开发Android App(一)

    一.apply 函数 和 run 函数 1.1 apply函数 apply函数是指在函数块内可以通过 this 指代该对象,返回值为该对象自己.在链式调用中,可以考虑使用它来不破坏链式. /** * ...

最新文章

  1. linux shell find命令 查找多种文件后缀
  2. (写给像我一样刚离开校园进入公司的小菜鸟)在领域架构下,如何实现简单的展示页面以及增删改查(第二步)...
  3. GDCM:输出DataSet的测试程序
  4. ERDAS软件应用(三)遥感图像的拼接
  5. Vue结合HTML5拖放API 实现目录拖拽~
  6. 云+X案例展 | 民生类:浪潮云打卡人间仙境张家界
  7. 漫画:Java如何实现热更新?
  8. 计算机三级标题,计算机三级考试题目
  9. 飞秋mac版字符乱码_Mac必装软件推荐,下载方法也给你了。
  10. 简单理解const是锁还是不锁!
  11. 达梦数据库存储过程调用
  12. [论文评析] ArXiv-2021,Pyramid Vision Transformer A Versatile Backbone for Dense Prediction without Convo
  13. HDOJ 2013_大二写
  14. 华硕B85M-D台式机主板音响没反应,更新驱动还是找不到realtek高清晰音频管理器原因及解决方案
  15. 如何更好的使用谷歌搜索引擎
  16. nginx的全局配置和HTTP相关配置
  17. C# 关于AD域的操作 (首博)
  18. 人工智能需要学哪些课程?
  19. Linux系统Debian安装
  20. 佛吉尼亚大学计算机世界排名,弗吉尼亚大学计算机排名

热门文章

  1. 登陆淘宝账号,提示证书过期
  2. PyTorch实现猫狗识别VGG
  3. 微商怎么通过微博引流?微商用微博推广技巧
  4. 个人作业4——alpha阶段个人总结
  5. Ubuntu自动更换壁纸
  6. springmvc关于404的异常处理
  7. innodb_data_file_path参数的一些注意事项
  8. 2021最新Android知识体系总结,实战篇
  9. 菜鸟建站–网站安装教程(wordpress博客程序安装)
  10. selenium+chormdriver+python 实现淘宝的信息爬取