kotlin学习定义方法的时候参数带默认值

在开发过程中我们会遇到很多种在类中方法的不同重载,有些方法的重载很多个参数,但在我们使用时候有些参数大部分情况是有默认值的,那么我们为什么不减少一些重载,给一些参数默认值,从而在使用时候选择性的传递参数。就像下面这段代码定义,我们就可以只传递第一个参数就可以完成调用,如果这样定义方法可以省去了很多重载

fun <T> joinString(collection: Collection<T>, separator: String = ", ", prefix: String = "", postfix: String = ""): String {
        val stringBuiler = StringBuilder(prefix)
        for ((index, element) in collection.withIndex()) {
            if (index > 0) stringBuiler.append(separator)
            stringBuiler.append(element)
        }
        stringBuiler.append(postfix)
        return stringBuiler.toString()
    }

比如说我们进行一个最简单的调用只传递第一个参数如下

// 测试函数带默认值
 val list = arrayListOf(1,2,4)
 Log.e("default value", joinString(list))

代码很好理解就是,我们只传递了第一个参数,其他参数都走的默认值,这样用起来方便了许多。如果有特殊情况,比如说分隔符需要使用其他的比如说用“==”来分割,我们可以像下面来使用

 val list = arrayListOf(1,2,4)
Log.e("default value", joinString(list, separator = "=="))

大家可以看到我们使用了命名参数来使用了新的分隔符,首和尾我们这两个参数就不说了,因为和分隔符是类似的用法,直接修改他们就可以。

注意,这篇总结用到了命名参数和参数默认值两个比较重要的支持点,在这里写着片文章来做一下学习记录。

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x