Scala
스칼라 강좌 (32) - 가변 인자 처리 ( * 과 _* )
[하마] 이승현 (wowlsh93@gmail.com)
2016. 12. 15. 17:31
스칼라에서의 가변인자
1. 간단 예제
object test {
def func[T](xs:T*) = xs.foreach(x => println(x))
def main(arg : Array[String]): Unit ={
func(0,1,2)
}
}
(xs : T*) 처럼 타입뒤에 * 를 붙혀주면 됩니다.
2. 컬렉션은 _* 를 붙여줍니다.
object test {
def sum(xs:Int*):Int = if (xs.isEmpty) 0 else xs.head + sum(xs.tail:_*)
def main(arg : Array[String]): Unit ={
println(sum(0,1,2,3)) // OK !
val ns = List(1, 3, 5)
println(sum(ns:_*)) // OK!
println(sum(List(1, 3, 5))) // Not Good
}
}
: _* 를 붙여줌으로써 컴파일러에게 가변인자라는것을 알려줍니다.