美文网首页
Kotlin的四大函数使用

Kotlin的四大函数使用

作者: 爱学习的蹭蹭 | 来源:发表于2019-11-28 11:09 被阅读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方法
    
    }
    
    

    相关文章

      网友评论

          本文标题:Kotlin的四大函数使用

          本文链接:https://www.haomeiwen.com/subject/anohwctx.html