kotlin中的lef, run, apply ....
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 ....相关推荐
- Kotlin中let、run、with、apply及also的差别
/ 今日科技快讯 / 近日,微软刚刚发布了新版操作系统Windows 11,包括全新的设计和诸多新功能,并且能够直接运行安卓应用.该公司首席执行官兼董事长萨蒂亚·纳德拉随后接受媒体专访,他称希 ...
- Kotlin 中的 run、let、with、apply、also、takeIf、takeUnless 语法糖使用和原理分析
这些Kotlin的语法糖函数经常用,但也很容易搞混,所以转载一下,若混了可以回来再看 转载自公众号:纸上浅谈 正文: 在 Kotlin 有一些可以简化代码的语法糖,比如 run.let.with.ap ...
- 轻松理解kotlin中标准函数let、run、with、apply、also的区别
kotlin中,let.run.with.apply.also这几个标准函数使用起来非常方便,合理使用可以很大程度上的简化代码,但是这几个标准函数用法和功能相似,初学kotlin时,很容易会不知道该选 ...
- Kotlin中also与apply的区别
Kotlin中also与apply的区别 also和apply的差别主要存在于lambda表达式内context表示方式 also是通过传入的参数(it)来表示 apply是通过this来表示 als ...
- Kotlin中的高阶函数
博客地址sguotao.top/Kotlin-2018- 在Kotlin中,高阶函数是指将一个函数作为另一个函数的参数或者返回值.如果用f(x).g(x)用来表示两个函数,那么高阶函数可以表示为f(g ...
- java中使用kotlin_在Kotlin中使用libGDX
java中使用kotlin 最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,并且一种语言对我来说很突出:Kotlin. ( https://kotlinlang.o ...
- 在Kotlin中使用libGDX
最近,我一直在阅读有关不同语言的信息,以及它们可以为已经拥挤的软件开发人员带来什么,而一种语言对我来说很突出:Kotlin. ( https://kotlinlang.org/ ) 这是一种相对较新的 ...
- 教你如何完全解析Kotlin中的注解
简述: 从这篇文章将继续开始探索Kotlin中的一些高级的内容,之前有着重探讨了Kotlin的泛型以及泛型型变等内容.现在我们一起来看下Kotlin中的注解.Kotlin中的注解是100%与Java注 ...
- 教你如何攻克Kotlin中泛型型变的难点(下篇)
简述: 前几天我们一起为Kotlin中的泛型型变做了一个很好的铺垫,深入分析下类型和类,子类型和子类之间的关系.什么是子类型化关系以及型变存在的意义.那么今天将会讲点更刺激的东西,也就是Kotlin泛 ...
- [译]带你揭开Kotlin中属性代理和懒加载语法糖衣
翻译说明: 原标题: How Kotlin's delegated properties and lazy-initialization work 原文地址: https://medium.com/t ...
最新文章
- Python:numpy生成正态分布的平均数
- 斯坦福大学、DARPA与硅谷公司共同分析前沿科技发展趋势
- 【aspnetcore】添加自定义json配置文件
- SQL Server 2005的30项顶尖特性
- struts2学习笔记(常见错误)
- 中缀表达式到前缀表达式和后缀表达式
- 十三不香了?不止去掉刘海,iPhone14或改用QLC闪存:最高2TB容量
- SIGIR2020 | 基于GCN的鲁棒推荐系统研究
- 离模拟世界又近一步!谷歌推出开源量子计算平台OpenFermion
- 教你搭建一个NAT实验环境
- 01--DNS服务器2
- python中怎么打印出表格_Python 表格打印
- java 值类型与引用类型_Java值类型和引用类型的区别
- CWnd::SetCapture, ReleaseCapture, GetCapture
- cuda实现卷积运算
- 圣天诺 LDK - SL (高强度许可证授权产品)
- 第三方ZXing库zxing-android-embedded使用及自定义
- 26个字母和数字符号ASCII码对照表
- css介绍css选择器
- 中秋节祝福html,中秋节祝福页面 在线制作祝福网页 祝你中秋节快乐!
热门文章
- 3月6日云栖精选夜读 | 三七女生节,解密阿里女程序员们的代码诗!
- 计算机安全的三个特点,三大特点:安全、易用、可靠
- 【C语言】各类指针的理解(小白学习笔记)
- python大数据运维工程师_Linux云计算运维工程师路线图(集群、虚拟化、K8S、Docker、智能化、Python大数据)...
- 药物基因组学_个体化实验分析_实验报告
- 网络变压器防雷设计方案
- 大一学生WEB前端静态网页——环保网页设计与实现
- 关于Field[]的解释!!!
- z97支持服务器内存吗,z97主板支持ddr4吗
- 2017年1月1日 App Store中的所有应用都必须启用 App Transport Security安全功能