Kotlin的四大函数使用

2019-11-28  本文已影响0人  爱学习的蹭蹭

1、apply 函数

1、任意函数都有apply扩展 apply参数是一个函数
2、凡是kotln有T.()->Unit 带接收者的函数字面值
3、apply函数返回值就是调用者本身

fun main(args : Array<String>){
  //调用
  listApply()
}

fun listApply(){
    var list :ArrayList<String>? = arrayListOf("林青霞","灵儿","喜来乐")
    //list?.add("哈哈")
    //list?.add("林少师")
    
    // apply 函数
    list?.apply {
        add("哈哈")
        add("林少师")
    }?.add("董菲菲")
    
    set{
        this.name
    }
}


/*
 * T.() -> Unit
 * lambda相当于定义在T里面的函数,访问对象里面的字段或方法
 */
fun set(block: Datax.() ->Unit){
    //调用方式
    //方法一
    block(Datax())
    //方法二
    Datax().block()
}

class Datax(){
    var name = "历史"
}

2、let 函数

1、 let函数,任意对象都有let函数扩展
2、let函数参数也是一个函数
3、函数参数它的参数是调用者它本身
4、let的表达式是函数参数的返回值,就是lambda表达式的值

//let 函数
fun listLet(){
    var list :ArrayList<String>? = arrayListOf("林青霞","灵儿","喜来乐")
    
    list?.let {
        it.add("辽阔")
        "第一个let"
    }
    println(list)
}

3、with函数

1、with是一个独立的函数,可以在任意地方调用
2、with函数需要接收两个参数、第一个参数可以接收任意类型
第二个参数是函数参数,并且这个函数参数带接受者的函数字面值,接收者就是第一个参数

3、with函数返回值是第二个函数参数的返回值

//with函数
fun fwith(){
    var list :ArrayList<String> = arrayListOf("林青霞","灵儿","喜来乐")
    
    with(list){
        this.add("第一个with")
        "第二个with"
    }
}

4、run函数

任意类型都有这个run扩展函数
run函数参数是带接收者,接收者是调用者本身
run函数的返回值就是函数参数的返回值

 //run函数
fun frun(){
    var list :ArrayList<String> = arrayListOf("林青霞","灵儿","喜来乐")
    
    list.run{
        this.add("")
        "第一个run"
    }.length //因为最后一个是字符串,所以有length方法

}

上一篇下一篇

猜你喜欢

热点阅读