In Scala, Repeated Method parameters are supported, which is helpful when we don’t know the number of arguments a method requires. This property of Scala is utilized in passing limitless parameters to a method defined.
Important points :
- The methods with Repeated Parameters should have each of the parameters of same type.
- A Repeated parameter is always the last parameter of the method defined.
- The method defined by us, can have only one parameter as Repeated Parameters.
Example:
// Scala program of repeated // parameters // Creating object object repeated
{ // Main method
def main(args : Array[String])
{
// Creating a method with
// repeated parameters
def add(x : Int*)
: Int =
{
// Applying 'fold' method to
// perform binary operation
x.fold( 0 )( _ + _ )
}
// Displays Addition
println(add( 2 , 3 , 5 , 9 , 6 , 10 , 11 , 12 ))
}
} |
58
In order to add any number of extra parameters, we need to put * mark after the type of the parameter being used.
Some more examples of Repeated Parameters:
- An Array can be passed in the Repeated Parameter method.
Example:// Scala program of repeated
// parameters
// Creating object
object
arr
{
// Main method
def
main(args
:
Array[String])
{
// Creating a method with
// repeated parameters
def
mul(x
:
Int*)
:
Int
=
{
// Applying 'product' method to
// perform multiplication
x.product
}
// Displays product
println(mul(Array(
7
,
3
,
2
,
10
)
:
_
*))
}
}
Output:420
In order to pass an array in the defined method, we need to put a colon i.e, : and _* mark after passing the values in the array.
- An example to show that Repeated Parameters are always the last parameter of the method defined.
Example:// Scala program of repeated
// parameters
// Creating object
object
str
{
// Main method
def
main(args
:
Array[String])
{
// Creating a method with
// repeated parameters
def
show(x
:
String, y
:
Any*)
=
{
// using 'mkString' method to
// convert a collection to a
// string with a separator
"%s is a %s"
.format(x, y.mkString(
"_"
))
}
// Displays string
println(show(
"GeeksforGeeks"
,
"Computer"
,
"Sciecne"
,
"Portal"
))
}
}
Output:GeeksforGeeks is a Computer_Sciecne_Portal
Here, format is used to format strings.