【2025最新版Kotlin教程】Kotlin第一行代码系列第八课-扩展

65 阅读1分钟
【2025最新版Kotlin教程】Kotlin第一行代码系列第八课-扩展

kotlin的扩展真的很好用。 扩展函数:从类的外部为它扩展了新的方法,这就强大了,一些第三方库或者jdk中的类我都可以为它新增方法,如给String类增加方法

使用场景:

  1. 可以消灭任何工具类了
  2. 如果只有一个参数的工具类方法果断写成扩展函数

主要它就有语法提醒输入,多方便啊

注意:扩展函数和扩展属性,我们都写在顶层。避免有访问的限制
一、扩展函数:
// 源码联系:893151960
fun String.append(str: String):String{
    return "${this}${str}"
}

// Android开发中给Context新增show方法
fun Context.show(resId: Int, duration: Int = Toast.LENGTH_SHORT) {
    Toast.makeText(this, resId, duration).show()
}

/**
 * 选学:也可以带泛型
 */
fun <T> Context.dpToPx(num: T): T{
    return resources.displayMetrics.density.let { if(num is Int){ (num * it + 0.5f).toInt() }else{ num as Float * it } as T }
}

fun main() {
    println("aaa".append("666"))
}
二、扩展属性:
/**
 * 选学:不常用
 */
val String.lastElement: Char?
    get() = if (isEmpty()) {
        null
    } else {
        get(length - 1)
    }

fun main() {
    val str = "Hello bady"
    // lastElement就像String的成员属性一样可以直接调用
    val last = str.lastElement
}
整个kotlin教程的项目源码结构图:

在这里插入图片描述

有问题或者完整源码的可以看简介联系我,也可以私信我,我每天都看私信的