《第一行代码》第三版学习笔记(三)

《第一行代码》第三版学习笔记(三)

kotlin标准函数

with函数 的两个参数
第一个参数可以是任意类型对象
第二个参数是一个lambda表达式,with函数会在lambda表达式中提供第一个参数对象的上下文,并使用lambda表达式中的最后一行代码作为返回值返回。

作用:在连续调用同一个对象的多个方法时让代码变得更加精简


    val list = listOf("Apple","Banana","Orange","Pear","Grape")
//    可变的字符序列
    val result = with(StringBuilder()) {
        append("开始吃水果\n")
        for(fruit in list) {
            append(fruit).append("\n")
        }
        append("吃完水果")
        toString()
    }
    println(result)

run函数
run函数的用法和使用场景和with函数类似
run函数通常不会直接调用,而是要是在某个对象的基础上调用;run函数只接受lambda参数,在lambda表达式中提供调用对象的上下文,其他和with函数一样。

val list = listOf("Apple","Banana","Orange","Pear","Grape")
//    可变的字符序列
    val result = StringBuilder().run {
        append("开始吃水果\n")
        for(fruit in list) {
            append(fruit).append("\n")
        }
        append("吃完水果")
        toString()
    }
    println(result)

apply函数
apply函数又和run函数很像,不一样的是apply函数无法指定返回值,而是自动返回调用对象本身

val list = listOf("Apple","Banana","Orange","Pear","Grape")
//    可变的字符序列
    val result = StringBuilder().apply {
        append("开始吃水果\n")
        for(fruit in list) {
            append(fruit).append("\n")
        }
        append("吃完水果")
    }
    println(result.toString())

定义静态方法

1.静态方法
不需要创建实例就能调用的方法,在有些编程语言里面静态方法也叫类方法。

适合编写工具类的功能,因为工具类通常没有创建实例的必要,基本全局通用。

2.类似于静态方法的调用方式
kotlin更常用单例类,而不是静态方法。但是单例类会让整个类里的方法都编程类似于静态方法的调用方式

在普通类里面对想要对其静态调用的方法外面来一层companion object。

class Util {
//需创建实例才能调用
	fun doAction1(){
		println("do action1")
	}
//可直接Util.doAction2()调用
	companion object {
		fun doAction2(){
			println("do action2")
		}
	}
}

companion object实际上会在类的内部创建一个伴生类,doAction2()就是定义在这个伴生类里面的实例方法。
3.真正的静态方法
如果定义货真价实的静态方法在kotlin中有两种方法:注解顶层方法

@JvmStatic注解:只能加在 单例类companion object的方法

顶层方法:定义在任何类中的方法,比如main()方法。kotlin编译器会将所有的顶层方法全部编译成静态方法。
例如定义一个顶层方法

fun doSomething(){
	println("do something")
}

任何位置都可以被调用,直接输入函数名就可以。但在java中这个方法需要以 文件名.方法 这样的写法来调用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值