scala> //Special Call forms #194 scala> //Example 1 : Repeated Parameters scala> def demo(args: String*) = { | for(arg <- args) { | println("arg -> " + arg) | } | } demo: (args: String*)Unit scala> scala> demo("this", "is", "scala") arg -> this arg -> is arg -> scala scala> scala> //Passing an array will give compilation error scala> val arr = Array("This", "is", "scala") arr: Array[String] = Array(This, is, scala) scala> demo(arr) <console>:13: error: type mismatch; found : Array[String] required: String demo(arr) ^ scala> scala> //But, Array can be passed like this scala> demo(arr: _*) arg -> This arg -> is arg -> scala scala> scala> scala> //Example 2 : Named arguments scala> def fn1(firstArg: String, secondArg: String) = { | println("firstArg -> " + firstArg + ", secondArg -> " | + secondArg) | } fn1: (firstArg: String, secondArg: String)Unit scala> scala> fn1(secondArg = "scala", firstArg = "hello") firstArg -> hello, secondArg -> scala scala> scala> //Example 3 : Defaul Parameter Values scala> def fn2(firstArg: String = "HELLO", secondArg: String) = { | println("firstArg -> " + firstArg + ", secondArg -> " | + secondArg) | } fn2: (firstArg: String, secondArg: String)Unit scala> scala> fn2(secondArg = "Scala") firstArg -> HELLO, secondArg -> Scala