Code前端首页关于Code前端联系我们

Kotlin常用的扩展函数let、with、run、apply还有

terry 2年前 (2023-09-23) 阅读数 70 #移动小程序

扩展函数是如何生成的?

将Kotlin集成到现有的Java项目中时,有可能现有代码无法转换为Kotlin,而必须当用到这些API时,扩展函数就派上用场了。

听起来很混乱,所以我们来写一个扩展函数来获取字符串的最后一个字符
首先,创建Demo Kotlin.kt

package com.natchi.wanandroid.demo
fun String.lastChar(): Char {
    
    return this.get(this.length - 1)
}

我们看一下扩展函数的整体结构

  1. 首先,函数在类
  2. 接收者类型之外,哪个类型可以调用函数?
  3. 接收者对象用于调用此扩展函数的实例

然后我们调用此函数并打印。这是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前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门