28. 扩展成员

作者: 厚土火焱 | 来源:发表于2017-11-24 00:37 被阅读79次

    当一个已经完成的类、函数、对象等,需要更多的功能的时候,只能去修改原来的代码吗?当然不是。在 kotlin 中,我们可以写新的代码对原来的代码进行扩展。扩展出新的函数或属性。
    甚至,我们可以对数据类型进行扩展。
    这就是扩展成员。
    我们试着给 Int 类型做一个扩展
    扩展出 Int 类型可以唱歌的功能

    fun Int.Sing(str:String):String{
        return "$str is good!"
    }
    

    扩展出 Int 类型可以多次重复输出的功能

    operator fun String.times(int: Int):String{
        var str = ""
        for (int in 1..int){
            str += this
        }
        return str
    }
    

    扩展出 Int 类型可以大笑的功能

    val Int.s:String
    get() = this.toString() + "hahaha"
    

    扩展出 Int 类型可以读写的功能

    var Int.ss:String
    get() = this.toString() + "就是这样"
    set(value) {
    
    }
    

    然后我们就可以这样使用 Int 类型的这些扩展成员了。

        println("扩展成员,扩展方法和扩展属性")
        println(2014.Sing("ML"))
        println("顺" * 2)
        println(1017.s)
        println(1695.ss)
        1695.ss = "hhh"
    

    运行得出结果

    扩展成员,扩展方法和扩展属性
    ML is good!
    顺顺
    1017hahaha
    1695就是这样
    

    数据类型可以扩展,其他也可以扩展。可以发挥想象各种试试了。

    相关文章

      网友评论

        本文标题:28. 扩展成员

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