Методы с неопределенным количеством параметров

Метод может иметь неопределенное количество параметров одного типа. Они указываются с помощью синтаксиса 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

Ссылки: