It gets interesting when parameters have two types that we have already covered—vararg and lambdas:
fun aVarargFun(vararg names: String) {
names.forEach(::println)
}
fun main(args: Array<String>) {
aVarargFun()
aVarargFun("Angela", "Brenda", "Caroline")
}
A function with a parameter marked with the modifier, vararg can be called with zero or more values:
fun multipleVarargs(vararg names: String, vararg sizes: Int) {
// Compilation error, "Multiple vararg-parameters are prohibited"
}
A function can't have multiple vararg parameters, not even with different types.