无法理解 Kotlin Android 中的扩展函数?
Unable to understand extension function in Kotlin Android?
我无法理解扩展功能并在我的项目中使用它。有人可以在这里指导我吗?
来自文档 - “Kotlin 提供了使用新功能扩展 class 的能力,而无需继承 class 或使用装饰器等设计模式。这是通过称为扩展的特殊声明完成的。”
为了简单地理解这一点,让我们考虑以下示例:
要事第一。
写 10 然后在它后面放一个点 (.) 然后尝试写 addTwoNumbers()。
在此阶段您会遇到错误,因为没有 属性 名为 addTwoNumbers() 的整数。
现在,写这个方法:
fun Int.addTwoNumbers(y: Int): Int = this.plus(y) //“this” corresponds to the integer number. (In this example, “this” refers to 10).
注意我们如何使用 Int.addTwoNumbers().
让我们再做同样的事情:
写10.
在它后面加一个点(.)。
尝试写addTwoNumbers()。
这次你会注意到,它看起来好像是整数的属性。
检查下面的代码:
fun main() {
val sum = 10.addTwoNumbers(20) //here “this” will be assigned “10” and “y” will be assigned “20”
println("sum: $sum")
}
这将在控制台打印 sum: 30。
这种现象被称为“扩展函数”。
我无法理解扩展功能并在我的项目中使用它。有人可以在这里指导我吗?
来自文档 - “Kotlin 提供了使用新功能扩展 class 的能力,而无需继承 class 或使用装饰器等设计模式。这是通过称为扩展的特殊声明完成的。”
为了简单地理解这一点,让我们考虑以下示例:
要事第一。
写 10 然后在它后面放一个点 (.) 然后尝试写 addTwoNumbers()。 在此阶段您会遇到错误,因为没有 属性 名为 addTwoNumbers() 的整数。
现在,写这个方法:
fun Int.addTwoNumbers(y: Int): Int = this.plus(y) //“this” corresponds to the integer number. (In this example, “this” refers to 10).
注意我们如何使用 Int.addTwoNumbers().
让我们再做同样的事情:
写10.
在它后面加一个点(.)。
尝试写addTwoNumbers()。
这次你会注意到,它看起来好像是整数的属性。
检查下面的代码:
fun main() {
val sum = 10.addTwoNumbers(20) //here “this” will be assigned “10” and “y” will be assigned “20”
println("sum: $sum")
}
这将在控制台打印 sum: 30。
这种现象被称为“扩展函数”。