Kotlin
매개변수의 개수가 고정되지 않은 함수 사용하기 - [Doit! 코틀린 프로그래밍]
서퍼리노
2023. 1. 25. 01:02
728x90
만약에 입력받은 숫자들을 출력하는 프로그램을 짠다고 할 때
1,2,3을 전달하면 1,2,3이라 출력하고,
1,2,3,4를 전달하면 1,2,3,4라고 출력하기 위해서는 어떻게 해야 할까요?
이 문제를 처리하기 위해선 오버로딩을 사용하거나, 여러 개의 함수를 만드는 식으로 해결할 것입니다.

하지만 이러한 방법들은 적은 반복을 요구할 때는 괜찮을 수 있지만,
만약 똑같은 작업을 하지만 들어오는 입력이 다른 경우가 생긴다면 어떡해야 할까요?
위의 각 함수의 역할은 매개변수의 개수가 달라지더라도 동일하다는 점을 이용하면
조금 더 쉽게 이 문제를 해결할 수 있습니다.
가변 인자(Variable Argument)
이럴 때 코틀린에서는 가변 인자라는 것을 사용할 수 있습니다.
가변 인자는 '인자의 길이 즉, 인자의 개수가 변한다'라는 뜻을 가지고 있습니다.
코틀린에서는 vararg라는 키워드를 사용합니다.
사용 방법은 인자의 앞에 vararg라는 키워드를 사용하면 됩니다.
fun main() {
printNumber(1,2,3)
printNumber(1,2,3,4)
}
fun printNumber(vararg number: Int) {
number.forEach {
print("$it ")
}
println()
}
이와 같이 vararg 키워드를 붙여 코드를 작성하게 된다면

이처럼 printNumber라는 함수 하나로 여러 개의 인자가 들어오더라도
인자의 길이에 따라 진행할 수 있습니다.
728x90