가변 인자
- 가변 인자 : 함수 호출 시 인자 개수를 유동적으로 지정 가능
- 인자 앞에 vararg 키워드 붙이기
fun sum(vararg num: Int) = num.sum()
fun main(args: Array<String>) {
val n1 = sum(1)
val n2 = sum(1, 2, 3, 4)
}
이미 생성된 배열을 인자로 넘기기
- 이미 생성된 배열 자체를 인가로 넘겨야할 시에는 배열명 앞에 *(Spread Operator) 붙이기
fun showMain(args: Array<String>) {
val test = arrayOf("A", "B", "C")
showAll(*test)
}
Generic 처리 또한 가능
- 단, 타입 변수 T로 인해 배열만 넘길 수 있다.
printElement(*arrayOf(1))
printElement(*arrayOf("1"))
fun <T> printElement(vararg element: T) {
println(element.javaClass)
}
- Generic이 아닌 타입이 명시된 경우에는 인자를 넘기지 않고, 빈 배열 처리가 가능하다.