run

函数内可通过this引用当前对象; 返回值为最后一行, 可以与当前对象类型不同

"kotlin".run { "hello $this" }
>>> hello kotlin

with

with函数接收两个参数, 一个对象, 一个函数, 函数内可用this引用对象, 返回值为最后一行, 可以与当前对象类型不同

with("kotlin", {"hello $this"})
>>> hello kotlin

apply

函数内可以通过 this引用当前对象, 返回当前对象

mutableListOf<String>().apply( add("1"); add(2);)
>>> ["1", "2"]

also

1.1版本开始, 与apply基本一致, 区别在于函数体内使用 it引用对象

mutableListOf<String>().apply( it.add("1"); it.add(2);)
>>> ["1", "2"]

let

run基本一致, 区别在于函数体内使用it引用对象

"kotlin".let { "hello $it" }
>>> hello kotlin

takeIf

1.1版本开始, 条件判断, 条件成立时, 返回对象自身, 不成立时返回null, 比如可用来截取字符串
str.takeIf {it.length > 20} ?: str.subString(0..20)

"123".takeIf {it.length > 10}
>>> null

takeUnless

1.1版本开始, 条件判断, 与takeIf相反, 条件成立时返回null, 不成立返回自身

"123".takeUnless {it.length > 10}
>>> 123

repeat

循环, 函数体可用it获取下标, 无返回值

repeat(10) {println("no.$it")
}
>>> no.0  no.1  no.2 ...

整理自 Standard.kt

kotlin中的lef, run, apply ....相关推荐

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

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

  2. Kotlin 中的 run、let、with、apply、also、takeIf、takeUnless 语法糖使用和原理分析

    这些Kotlin的语法糖函数经常用,但也很容易搞混,所以转载一下,若混了可以回来再看 转载自公众号:纸上浅谈 正文: 在 Kotlin 有一些可以简化代码的语法糖,比如 run.let.with.ap ...

  3. 轻松理解kotlin中标准函数let、run、with、apply、also的区别

    kotlin中,let.run.with.apply.also这几个标准函数使用起来非常方便,合理使用可以很大程度上的简化代码,但是这几个标准函数用法和功能相似,初学kotlin时,很容易会不知道该选 ...

  4. Kotlin中also与apply的区别

    Kotlin中also与apply的区别 also和apply的差别主要存在于lambda表达式内context表示方式 also是通过传入的参数(it)来表示 apply是通过this来表示 als ...

  5. Kotlin中的高阶函数

    博客地址sguotao.top/Kotlin-2018- 在Kotlin中,高阶函数是指将一个函数作为另一个函数的参数或者返回值.如果用f(x).g(x)用来表示两个函数,那么高阶函数可以表示为f(g ...

  6. java中使用kotlin_在Kotlin中使用libGDX

    java中使用kotlin 最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,并且一种语言对我来说很突出:Kotlin. ( https://kotlinlang.o ...

  7. 在Kotlin中使用libGDX

    最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,而一种语言对我来说很突出:Kotlin. ( https://kotlinlang.org/ ) 这是一种相对较新的 ...

  8. 教你如何完全解析Kotlin中的注解

    简述: 从这篇文章将继续开始探索Kotlin中的一些高级的内容,之前有着重探讨了Kotlin的泛型以及泛型型变等内容.现在我们一起来看下Kotlin中的注解.Kotlin中的注解是100%与Java注 ...

  9. 教你如何攻克Kotlin中泛型型变的难点(下篇)

    简述: 前几天我们一起为Kotlin中的泛型型变做了一个很好的铺垫,深入分析下类型和类,子类型和子类之间的关系.什么是子类型化关系以及型变存在的意义.那么今天将会讲点更刺激的东西,也就是Kotlin泛 ...

  10. [译]带你揭开Kotlin中属性代理和懒加载语法糖衣

    翻译说明: 原标题: How Kotlin's delegated properties and lazy-initialization work 原文地址: https://medium.com/t ...

最新文章

  1. Python:numpy生成正态分布的平均数
  2. 斯坦福大学、DARPA与硅谷公司共同分析前沿科技发展趋势
  3. 【aspnetcore】添加自定义json配置文件
  4. SQL Server 2005的30项顶尖特性
  5. struts2学习笔记(常见错误)
  6. 中缀表达式到前缀表达式和后缀表达式
  7. 十三不香了?不止去掉刘海,iPhone14或改用QLC闪存:最高2TB容量
  8. SIGIR2020 | 基于GCN的鲁棒推荐系统研究
  9. 离模拟世界又近一步!谷歌推出开源量子计算平台OpenFermion
  10. 教你搭建一个NAT实验环境
  11. 01--DNS服务器2
  12. python中怎么打印出表格_Python 表格打印
  13. java 值类型与引用类型_Java值类型和引用类型的区别
  14. CWnd::SetCapture, ReleaseCapture, GetCapture
  15. cuda实现卷积运算
  16. 圣天诺 LDK - SL (高强度许可证授权产品)
  17. 第三方ZXing库zxing-android-embedded使用及自定义
  18. 26个字母和数字符号ASCII码对照表
  19. css介绍css选择器
  20. 中秋节祝福html,中秋节祝福页面 在线制作祝福网页 祝你中秋节快乐!

热门文章

  1. 3月6日云栖精选夜读 | 三七女生节,解密阿里女程序员们的代码诗!
  2. 计算机安全的三个特点,三大特点:安全、易用、可靠
  3. 【C语言】各类指针的理解(小白学习笔记)
  4. python大数据运维工程师_Linux云计算运维工程师路线图(集群、虚拟化、K8S、Docker、智能化、Python大数据)...
  5. 药物基因组学_个体化实验分析_实验报告
  6. 网络变压器防雷设计方案
  7. 大一学生WEB前端静态网页——环保网页设计与实现
  8. 关于Field[]的解释!!!
  9. z97支持服务器内存吗,z97主板支持ddr4吗
  10. 2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能