To pass variable number of arguments to a function. We can declare function with varargs parameter.
In java looks like
public void println(String.. args) { }
// allow function to accept number of arguments fun printAnimal(vararg animals:String):Unit{ for (animal in animals) { print("\n $animal") } } fun printAnimal2(a1: String, vararg animals:String):Unit{ print("first -> $a1") // elephant // first argument goes in starting parameter for (animal in animals) { print("\n $animal") } }
fun main(args: Array<String>) { printAnimal("Lion", "Cheetah", "Cat", "Hayena") print("\n") printAnimal2("Elephant","Lion", "Cheetah", "Cat", "Hayena") }
Passing List of Function to function
fun passFun(vararg funs:()->Unit){ for (f in funs) { f() // to call function } } fun f1(){ print("function 1 ,") } fun f2(){ print("function 2 ") }
fun main(args: Array<String>) { // passing reference of function passFun(::f1,::f2) // function 1 , function 2 }
Generic function
fun <T> printAny(vararg varg: T) { varg.forEach { println(it) } }
fun main(args: Array<String>) { printAny(34,56,89) }
Original post on sanjayprajapat.hashnode.dev
Top comments (0)