Kotlin专题Kotlin编程禅与计算机程序设计艺术

28. 扩展成员

2017-11-24  本文已影响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就是这样

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

上一篇下一篇

猜你喜欢

热点阅读