8.2.2 扩展函数
通过 扩展 声明完成一个类的新功能 扩展 ,而无需继承该类或使用设计模式(例如,装饰者模式)。
一个扩展String类的swap函数的例子:
fun String.swap(index1: Int, index2: Int): String {val charArray = this.toCharArray()val tmp = charArray[index1]charArray[index1] = charArray[index2]charArray[index2] = tmpreturn charArrayToString(charArray)}fun charArrayToString(charArray: CharArray): String {var result = ""charArray.forEach { it -> result = result + it }return result}
这个 this 关键字在扩展函数内部对应到接收者对象(传过来的在点符号前的对象)。 现在,我们对任意 String 调用该函数了:
val str = "abcd"val swapStr = str.swap(0, str.lastIndex)println("str.swap(0, str.lastIndex) = $swapStr")
输出: str.swap(0, str.lastIndex) = dbca
当前内容版权归 JackChan1999 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 JackChan1999 .