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] = tmp
return 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 .