当一个已经完成的类、函数、对象等,需要更多的功能的时候,只能去修改原来的代码吗?当然不是。在 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就是这样
数据类型可以扩展,其他也可以扩展。可以发挥想象各种试试了。
网友评论