Kotlin学习笔记(三十四)拓展方法

/**
 * 拓展方法
 * 1.拓展方法可以在直接不改变原类的的基础上,给该类添加原本没有的方法
 * 2.拓展属性可以给类添加原本没有的属性,但由于没有filed幕后字段,不能直接使用=赋值,
 * 只能使用getter和setter,而filed不起效,所以setter没啥用
 */
fun String.multiply(count: Int): String { //拓展方法
    val stringBuilder = StringBuilder()
    for (i in 0 until count) {
        stringBuilder.append(this) //此处的this代表字符串本身
    }
    return stringBuilder.toString()
}

operator fun String.times(count: Int): String { //运算符重载的拓展方法,可用*号进行调用
    val stringBuilder = StringBuilder()
    for (i in 0 until count) {
        stringBuilder.append(this) //此处的this代表字符串本身
    }
    return stringBuilder.toString()
}

val String.specName: String //String的拓展属性
    get() = "$this spec"

fun main(args: Array<String>) {
    //打印10个连续不换行的abc字符串
    println("abc".multiply(10)) //拓展方法
    println("abc" * 10) //运算符重载的拓展方法
    println("never".specName) //拓展属性
}
运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容