kotlin标展函数(apply,let,run)

1、apply
apply函数可与看做是一个配置函数,传入一个对象,返回一个配置好的对象,在作用域内可以直 接调用该对象的任意方法:

 class Student{
        var name:String?=null
        var age:Int?=null
    }
    fun main(){
        class Student{
            var name:String?=null
            var age:Int?=null
        }
        fun main(args: Array<String>) {
            val studentInfo= Student().apply {
                name="小明"
                age=20
            }
            print(studentInfo)
        }
    }

作用:简化对象的初始化

2、let

let函数使摸个变量作用于lambda表达式里,让it关键字引用它

```java
   fun main() {
    val restlt= listOf(6,7,8,9).get(3).let {
        it*it
    }
    print(restlt)
}
输出:81```

let和apply区别:
①、let会把接收者传给lambda,apply什么都不传
②、匿名函数执行完,apply会返回当前接收者,let会返回lambda的最后一行

3、run

fun main() {
    val str="午饭吃什么"
    val result=str.run {
        contains("吃")
    }
    print(result)
}
输出:true

run函数执行函数引用:

fun main() {
    "my name is jack"
        .run(::isLong)
        .run(::show)
        .run(::println)
}
fun isLong(name:String)=name.length>=10

fun show(isLong: Boolean):String{
    return if (isLong){
        "name is jd"
    }else{
        "please create new name"
    }
}

run和apply比较:
只看作用域,run和apply差不多,但是ran不返回接收者,返回的是lanbda结果,true或者false,也可返回其它类型

你可能感兴趣的:(kotlin,android,java)