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