Kotlin常用的扩展函数let、with、run、apply还有
扩展函数是如何生成的?
将Kotlin集成到现有的Java项目中时,有可能现有代码无法转换为Kotlin,而必须当用到这些API时,扩展函数就派上用场了。
听起来很混乱,所以我们来写一个扩展函数来获取字符串的最后一个字符
首先,创建Demo Kotlin.kt
package com.natchi.wanandroid.demo
fun String.lastChar(): Char {
return this.get(this.length - 1)
}
我们看一下扩展函数的整体结构
- 首先,函数在类
- 接收者类型之外,哪个类型可以调用函数?
- 接收者对象用于调用此扩展函数的实例
然后我们调用此函数并打印。这是g,哈哈,证明这个功能可以用
@JvmStatic
fun main(args: Array<String>) {
println("string".lastChar())
}
---- IntelliJ IDEA coverage runner ----
sampling ...
include patterns:
exclude patterns:
g
Process finished with exit code 0
Kotlin常用的扩展函数let,z,run,apply,also等
对于这些函数,我觉得你可以很好用关心输入和输出。
让我们选择应用程序功能。结合Android开发,它们几乎保持不变。
@kotlin.internal.InlineOnly
public inline fun <T> T.apply(block: T.() -> Unit): T {
contract {
callsInPlace(block, )
}
block()
return this
}
T 接收者类型返回一个 T 接收者对象,表示调用了哪个实例,就返回该实例
示例 1:为对象赋值
val infoBean = InfoItemBean().apply {this:InfoItemBean
name = "justin"
address = "china"
phoneNumber = "1234"
}
示例 2:为 Recyclerview 初始化配置
{
layoutManager = mLayoutManager
adapter = mAdapter
itemAnimator = null
}
等它可以在很多场景中使用。这里我就不举例了。如果你看看Kotlin别人写的开源框架,你可以发现很多不同的知识。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。