Swift 입문 | 함수 | 가변 인수

인수로 전달되는 항목이 몇개 인지 모르다……라는 경우에 사용되는 것이 가변 인수이다. 이것은 다음과 같이 작성한다.

(인수명:유형 ...)

이렇게 작성된 인수는 여러 값을 쉼표(,)로 연결해 쓸 수 있다. 호출된 함수 측에서는 이러한 값은 배열에 모은다. 즉, 가변 인수는 “배열을 인수로 지정하는 것"이라고 생각하면 좋을 것이다.

아래에 가변 인수의 예제를 보도록 하자.

func calc(nums:Int...) -> Int {
    var total:Int = 0
    for num in nums {
        total += num
    }
    return total
}
calc(1,2,3,4,5)

여기에서는

calc(nums:Int...) 

이와 같이 인수를 지정하고 있다. 그 호출 부분을 보면 아래와 같이 되어 있다.

calc(1,2,3,4,5) 

보면 알 수 있듯이, nums에 여러 값이 작성되어 있다. 이런 식으로 많은 값을 인수로 전달할 수 있는 것이 가변 인수이다. 함수의 처리를 보면,

for num in nums {...

이와 같이 인수 값을 for로 반복 처리하고 있다. 가변 인수의 값은 요소 수가 일정하지 않은 배열로, 이 같이 for문으로 처리하는 것이 기본이다.