scalabook
Методы с неопределенным количеством параметров
Метод может иметь неопределенное количество параметров одного типа.
Они указываются с помощью синтаксиса T*
. Пример:
def printAll(args: String*): Unit = args.foreach(println)
printAll("Adam")// AdamprintAll("Adam", "Bob")// Adam// BobprintAll("Adam", "Bob", "Celin")// Adam// Bob// CelinprintAll("Adam", "Bob", "Celin", "David")// Adam// Bob// Celin// David
Ещё пример:
val arr = Array(0, 1, 2, 3)val lst = List(arr*)
def printList(lst: List[Int]): Unit = lst match case List(0, 1, xs*) => println(xs) case List(1, _*) => println("Starts with 1") case _ => println("Error")
printList(lst)// List(2, 3)printList(lst.tail)// Starts with 1
Ссылки: