函数的定义与调用
让函数更好调用
命名参数
使用Java这种面向对象函数,我们肯定会经常遇到函数调用,例如:
joinToString(list, "; ", "[", "]")
当我们第一次调用这种函数时就很懵,不知道每一个参数的含义,就造成了不必要的麻烦。
当调用一个Kotlin定义的函数时,可以显示的表明参数的名称。 如果在调用一个函数时你指明了某一个参数的名称,那么为了避免混淆,你需要指明所有i的参数名称,例如:
joinToString(list, separator = "; ", prefix = "[", postfix = "]")
默认参数值
Java中还存在有一个问题,就是有些类的重载方法太多了,就导致我们不得不了解每一个参数的含义,知道每个API的含义。
Kotlin中,可依在声明函数的时候,指定参数的默认值,这样就避免创建重载的函数。
fun joinToString(
collection: Collection<*>,
separator: String = ", ", //默认参数值为","
prefix: String = "[", //默认参数值为“["
postfix: String = "]" //默认参数值为”]“
): String {...}
那么我们就可以如下调用该函数:
//常规调用函数
joinToString(list
joinToString(list, ",", "", "")
joinToString(list, ";")
//使用命名参数形式调用函数
joinToString(list, separator = "; ", prefix = "[", postfix = "]")
joinToString(list, postfix = "}", prefix = "{")