Kotlin杂记之标准函数和静态方法
该博客是《第一行代码》第三版第3章关于Kotlin部分的笔记
一、标准函数with、run和apply
(一)with
- with函数接收2个参数:第一个参数可以是任意的对象,第二个参数是一个Lambda表达式。
- with函数会在Lambda表达式中提供第一个对象的上下文,并使用Lambda表达式中的最后一行代码作为返回值返回。示例代码如下:
val result = with(obj) { // 这里是obj的上下文 "value" //with函数的返回值 }
- with函数的作用:在连续调用同一个对象的多个方法时,with函数可以让代码变得更加精简,如:
val list = listOf("apple", "banana", "orange", "pear") val result = with(StringBuilder()) { append("start eating fruits.\n") for(fruit in list) { append(fruit).append("\n") } append("Ate all fruits.") toString() } println(result)
(二)run
run函数的用法和使用场景其实和with函数是非常类似的,只是稍微做了一些语法改动而已。
- run函数不能直接调用,而是一定要调用某个对象的run函数才行
- run函数只接收一个Lambda参数,并且会在Lambda表达式中提供调用对象的上下文
- 其他方面和with函数一样
示例代码如下:
val result = obj.run { // 这里是obj的上下文 "value" // run函数的返回值 }
(三)apply
apply函数和run函数极其类似,但apply函数无法指定返回值,而是会自动返回调用对象本身。
val result = obj.apply { // 这里是obj的上下文 } // result == obj
二、定义静态方法
在kotlin中编写工具类,建议使用单例类
object Util { fun doAction() {} }
在kotlin中想要定义静态方法,应该使用companion object
class Util { fun doAction1() {} companion object { fun doAction2() {} } }
注意:companion object这个关键字实际上会在Util内部创建一个伴生类,而doAction2()方法就是定义在这个伴生类的实例方法。只是Kotlin会保证Util类始终只存在一个伴生类对象,因此调用Util.doAction2()方法实际上就是调用了Util类中伴生对象的doAction2()方法
@JvmStatic
如果我们给单例类或companion object中的方法加上@JvmStatic注解,那么Kotlin会将这些方法编译成真正的静态方法
顶层方法
顶层方法指的是那些没有定义在任何类中的方法,Kotlin编译器会将所有的顶层方法编译成静态方法。
- 在Kotlin中,直接调用这个顶层方法即可
- 在Java中,会生成一个“文件名Kt的类”,如,Helper.kt中有一个doSomething方法,可以调用HelperKt.doSomething()
热门文章
- vue中modal传输数据并刷新部分页面数据方式_vue.js
- Kotlin杂记之标准函数和静态方法
- 第2章 图灵的计算王国
- 动物疫苗去哪买比较好 动物疫苗去哪买比较好一点
- 「2月28日」最高速度21.3M/S,2025年Hiddify Next每天更新免费节点订阅链接
- 「3月4日」最高速度19.2M/S,2025年Hiddify Next每天更新免费节点订阅链接
- 南京宠物猫领养中心在哪里啊(南京宠物领养吧)
- 长沙宠物猫领养中心在哪里 长沙宠物猫领养中心在哪里啊
- 宠物领养网官网app(宠物领养平台app)
- 「2月5日」最高速度21.6M/S,2025年Hiddify Next每天更新免费节点订阅链接