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. 扩展成员

    当一个已经完成的类、函数、对象等,需要更多的功能的时候,只能去修改原来的代码吗?当然不是。在 kotlin 中,我...

  • 类扩展&分类

    1、类扩展,extension,可以扩展属性(成员变量) @interface LYViewController(...

  • 8.扩展成员

    针对实际开发中的各种utils定义:1.为现有类添加方法、属性2.java调用扩展成员类似调用静态方法 Kotli...

  • 类的加载(三)

    类扩展 类扩展 VS 分类 category 专门用来给类添加新的方法 不能给类添加成员属性,添加了成员变量,也...

  • 快速上手 Kotlin 开发系列之扩展函数

    本节将着重介绍扩展函数 Kotlin 中有一个非常大的优势,就是可以静态的给一个类扩展它的成员方法,以及成员变量 ...

  • iOS之扩展和代理

    扩展 Q:我们一般用扩展做什么? A:声明私有属性,声明私有方法(没什么意义),声明私有成员变量 Q:扩展的特点 ...

  • extentsion扩展

    //把我们不想公开的代码放在.m文件中,隐藏一些成员变量,属性,方法 //extentsion(扩展):可以扩展属...

  • 扩展 - 代理 - 通知

    扩展 一般扩展做什么?? 1、声明私有属性2、声明私有方法3、声明私有成员变量 扩展特点 编译时决议只以声明的形式...

  • OC扩展、代理、通知

    二、扩展 1.一般用扩展做什么? 声明私有属性,声明方法(没什么意义),声明私有成员变量 2.扩展的特点 编译时决...

  • 扩展,协议

    扩展 扩展类似oc里面的category,用来为已存在的类提供额外功能。 extension可以访问类的所有成员,...

网友评论

    本文标题:28. 扩展成员

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