美文网首页我爱编程
kotlin扩展函数

kotlin扩展函数

作者: 哈哈_defb | 来源:发表于2018-06-08 10:57 被阅读0次

    简介

    Kotlin的扩展函数功能使得我们可以为现有的类添加新的函数,实现某一具体功能 。
    扩展函数是静态解析的,并未对原类添加函数或属性,对类本身没有任何影响。
    扩展属性允许定义在类或者kotlin文件中,不允许定义在函数中。

    使用

    fun Any.show(string: String) {
        println(string)
    }
    fun Extend.show2(string: String){
        println(string)
    }
    class Extend {
    
    }
    fun main(args: Array<String>) {
        Extend().show("我是扩展函数")
        Extend().show2("我是扩展函数")
    }
    

    扩展属性

    类的扩展属性原理其实与扩展方法是一样的,只是定义的形式不同,扩展属性必须定义get和set方法,并且类似于接口中定义的变量,没有backingfield,即没有field关键字,不能用来存储变量。(一般的类属性,在其对象实例中都会分配一点内存来存储属性的值。

    fun main(args: Array<String>) {
        val str = "aa"
        //没有backing field,不能存储值,其实际是通过setXXX(str,10)操作str
        //输出:aa10
        str.s = 10
    
        //输出:2
        println(str.s)
    }
    
    var String.s: Int
        get() = this.length
        set(value){
            //set方法并没有field可以用来存储value,
            //其实际作用是使用通过value来操作调用者,即this
           //plus二元操作符a+b
            println(this.plus(value))
        }
    

    相关文章

      网友评论

        本文标题:kotlin扩展函数

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