美文网首页我爱编程
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