Kotlin学习日记(八)常见的高阶函数

重点介绍let,apply,run,with,repeat这几个。

let

默认当前这个对象作为闭包的it参数,返回值是函数里面最后一行,或者指定return

"Hellow World".let {
        println(it)
        if(it.length > 5){
          println("太长了")
          return 1
        }else{
          println("短了")
          return 2 
        }
    }

apply

调用某对象的apply函数,在函数范围内,可以任意调用该对象的任意方法,并返回该对象

ArrayListL.apply{
    add("1")
    add("666")
    println(this)
}

run

run函数和apply函数很像,只不过run函数是使用最后一行的返回,apply返回当前自己的对象。

var length = "Hellow World".run{
   concat("haha")                                                                                                           println(length())                                                                                                        length                                                                                                                }                                                                  

with

with函数是一个单独的函数,并不是Kotlin中的extension,所以调用方式有点不一样,返回是最后一行,然后可以直接调用对象的方法,感觉像是let和apply的结合。

with(textView){
  text = "666"
  textColor = Color.YELLOW
  textSize = sp(14f).toFloat()
}

repeat

传入一个Int型参数,根据参数在代码块内执行几次,参数是几就执行几次。

repeat(6){
  println("Hello World")
}

总结:
函数名 定义 block参数 返回值 extension
let fun T.let(f: (T) -> R): R = f(this) it 闭包返回
apply fun T.apply(f: T.() -> Unit): T 无,可以使用this Unit
run fun T.run(f: T.() -> R): R 无,可以使用this Any
with fun with(receiver: T, f: T.() -> R): R = receiver.f() 无,可以使用this 闭包返回

repeat

fun repeat(times: Int, action: (Int) -> Unit) 闭包返回

你可能感兴趣的:(Kotlin开发)