Scala:Vararg
vararg
, _*
타입 어노테이션
Example
Scala에서 vararg
에 대한 처리 내용을 설명한다.
object Objective {
def printAll(values: String *): Unit = {
values.foreach(print)
}
}
object Main extends App {
Objective.printAll("aaaa", "bbbbbb")
println()
val vals = List("aaaa", "bbbbbb")
Objective.printAll(vals : _*)
}
결과는 다음과 같다.
String*
과 같은 표현으로 String
타입의 vararg
를 정의하고,
호출할 쪽에서는 List
컬렉션을 : _*
으로 바꿔 전달했다.
자바 개발자에게는 황당할 수 있지만, Scala Language Specification의 4.6.2 Repeated Parameters를 살펴보면, 관련 내용이 나오고 있다. _*
를 말할 때 _* 타입 어노테이션
라고 한다.
Smooch operator
또는 unpacker
라고 하기도 한다.