Vararg Parameters in Functions
Basics: Using the vararg keyword
Section titled “Basics: Using the vararg keyword”Define the function using the vararg keyword.
fun printNumbers(vararg numbers: Int) { for (number in numbers) { println(number) }}Now you can pass as many parameters (of the correct type) into the function as you want.
printNumbers(0, 1) // Prints "0" "1"printNumbers(10, 20, 30, 500) // Prints "10" "20" "30" "500"Notes: Vararg parameters must be the last parameter in the parameter list.
Spread Operator: Passing arrays into vararg functions
Section titled “Spread Operator: Passing arrays into vararg functions”Arrays can be passed into vararg functions using the Spread Operator, *.
Assuming the following function exists…
fun printNumbers(vararg numbers: Int) { for (number in numbers) { println(number) }}You can pass an array into the function like so…
val numbers = intArrayOf(1, 2, 3)printNumbers(*numbers)
// This is the same as passing in (1, 2, 3)The spread operator can also be used in the middle of the parameters…
val numbers = intArrayOf(1, 2, 3)printNumbers(10, 20, *numbers, 30, 40)
// This is the same as passing in (10, 20, 1, 2, 3, 30, 40)Syntax
Section titled “Syntax”- Vararg Keyword:
varargis used in a method declaration to indicate that a variable number of parameters will be accepted. - Spread Operator: An asterisk (
*) before an array that is used in function calls to “unfold” the contents into individual parameters.