Kotlin 自定义函数

Kotlin可在不修改原有类代码的情况下为现有类添加自定义函数,即拓展函数。文中以List<String>类为例,自定义convert()函数,将其转化为List<Result>对象,可通过链式调用获得新数据,this表示原始数据对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kotlin 可以为现有类添加一个自定义函数,而不必修改原来类的代码, 也可以理解为拓展函数。

1. 下面的例子为 List<String> 类添加一个转化函数,使得转化成 List<Result> 对象  (Result 为自定义的类)

class ListFunctionTest {
    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            println("main start")
            val nameList = mutableListOf("Tom", "Peter", "LiLei", "Jame", "Sim", "Luck")

            nameList.convert().forEach {
                println(it)
            }
        }

        //为List<String> 类自定义一个函数, 它的对象可以直接调用
        // 例如根据每个原始的String, 添加了id,  即转换成List<Result> 对象 返回
        private fun List<String>.convert(): List<Result> {
            var results = mutableListOf<Result>()
            this.forEach { name ->
                results.add(Result(results.size, name))
            }
            return results
        }

        data class Result(
            val id: Int,
            val name: String
        ) {
            override fun toString(): String {
                return "id: $id, name: $name"
            }
        }
    }
}

输出结果: 

id: 0, name: Tom
id: 1, name: Peter
id: 2, name: LiLei
id: 3, name: Jame
id: 4, name: Sim
id: 5, name: Luck

这里对 List<String> 类 自定义一个 convert() 函数, 目的是根据原始的每一个String 数据, 添加一个id, 对应为一个新的类 Result.

并把这个新的集合类List<Result> 的对象返回。

这就意味着,我们可以对原始的数据, 通过链式调用获得新的数据。

下面的 this 即表示原始的数据对象。

private fun List<String>.convert(): List<Result> {
    var results = mutableListOf<Result>()
    this.forEach { name ->
        results.add(Result(results.size, name))
    }
    return results
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值