Методы с неопределенным количеством параметров
Метод может иметь неопределенное количество параметров одного типа.
Они указываются с помощью синтаксиса T*
. Пример:
def printAll(args: String*): Unit =
args.foreach(println)
printAll("Adam")
// Adam
printAll("Adam", "Bob")
// Adam
// Bob
printAll("Adam", "Bob", "Celin")
// Adam
// Bob
// Celin
printAll("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
Ссылки: