@_
будет охватывать оба экземпляра.
val Array(a,b,x@_*) = "Hello,Bye,etc".split(',')
//a: String = Hello
//b: String = Bye
//x: Seq[String] = ArraySeq(etc)
val Array(c,d,z@_*) = "Hello,Bye".split(',')
//c: String = Hello
//d: String = Bye
//z: Seq[String] = ArraySeq()
Из ваших комментариев похоже, что вы хотите установить по умолчанию ""
, пустое String
.Я нашел способ сделать это с Stream
, который устарел в Scala 2.13, но пока это самое чистое решение, которое я нашел.
val Stream(a,b,c,d,_*) = "one,two,etc".split(",").toStream ++ Stream.continually("")
//a: String = one
//b: String = two
//c: String = etc
//d: String = ""