관리 메뉴

HAMA 블로그

스칼라 강좌 (32) - 가변 인자 처리 ( * 과 _* ) 본문

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
}
}

 : _* 를 붙여줌으로써 컴파일러에게 가변인자라는것을 알려줍니다.

Comments