本文共 1419 字,大约阅读时间需要 4 分钟。
该博客是《第一行代码》第三版第3章关于Kotlin部分的笔记
val result = with(obj) { // 这里是obj的上下文 "value" //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函数的用法和使用场景其实和with函数是非常类似的,只是稍微做了一些语法改动而已。
示例代码如下:
val result = obj.run { // 这里是obj的上下文 "value" // run函数的返回值}
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()方法
如果我们给单例类或companion object中的方法加上@JvmStatic注解,那么Kotlin会将这些方法编译成真正的静态方法
顶层方法指的是那些没有定义在任何类中的方法,Kotlin编译器会将所有的顶层方法编译成静态方法。
转载地址:http://xdtzi.baihongyu.com/