kotlin的扩展函数

105 阅读1分钟

在 Kotlin 中,扩展函数(Extension Functions)是一种强大的特性,允许你向已有的类添加新的函数,而无需修改其源代码。这使得你可以在不继承或修改类的情况下,为其添加功能。以下是一个简单的扩展函数的例子:

// 定义一个扩展函数
fun String.addExclamation(): String {
    return "$this!"
}

fun main() {
    // 调用扩展函数
    val originalString = "Hello, Kotlin"
    val modifiedString = originalString.addExclamation()

    println("Original: $originalString")
    println("Modified: $modifiedString")
}

输出:

Original: Hello, Kotlin
Modified: Hello, Kotlin!

在这个例子中,我们定义了一个名为 addExclamation 的扩展函数,它可以在任何 String 对象上调用。该函数在字符串末尾添加感叹号,并返回修改后的字符串。在 main 函数中,我们演示了如何调用这个扩展函数。

值得注意的是,扩展函数的定义是在一个顶层文件中,并且没有放在任何类内。扩展函数的名称前面的类型名(String)指定了在哪个类上添加这个函数。

你还可以创建扩展函数以扩展其他类型的类,例如:

// 定义一个扩展函数,用于计算字符串中的字母个数
fun String.countLetters(): Int {
    return this.count { it.isLetter() }
}

fun main() {
    val text = "Hello, Kotlin!"
    val letterCount = text.countLetters()

    println("Letter count: $letterCount")
}

输出:

Letter count: 11

在这个例子中,我们定义了一个扩展函数 countLetters,用于计算字符串中的字母个数。这个函数是在 String 类型上调用的,但我们并没有修改 String 类的源代码。

扩展函数是 Kotlin 中强大而灵活的工具,可用于向现有类添加新的功能,提高代码的可读性和复用性。