Daeng iOS

[iOS/Swift] variadic parameters(가변 매개변수), 파라미터 뒤에... 본문

IOS/Swift

[iOS/Swift] variadic parameters(가변 매개변수), 파라미터 뒤에...

U_Daeng 2025. 12. 2. 21:11

가변 매개변수같은 타입의 여러 개 값을 받을 수 있게 해주는 문법

 

역할 

1) 호출 시 여러 개의 인수를 받을 수 있게 한다. 

2) 함수 내부에서는 배열 타입으로 처리된다.

3) 코드가 더 자연스럽고 직관적이 된다.

 

사용 예시를 정리해보았다!

 

먼저 가변 매개변수를 사용할 때와 안한 경우를 비교

// 가변 매개변수 없이
func normalFunction(arrays: [[NSLayoutConstraint]]) {
    // 배열의 배열을 하나만 받음
}

// 사용할 때:
normalFunction(arrays: [titleConstraints, actionConstraints, iconConstraints])

// 가변 매개변수 사용
func variadicFunction(_ constraintGroups: [NSLayoutConstraint]...) {
    // 여러 개의 배열을 직접 받음
}

// 사용할 때:
variadicFunction(titleConstraints, actionConstraints, iconConstraints)

 

 

그리고 Swift 내장 함수들도 가변 매개변수를 사용한다

예를 들면...

// print 함수
print("Hello", "World", "Swift")  // 여러 개 값 전달

// max 함수  
let maximum = max(1, 5, 3, 9, 2)  // 여러 개 숫자 중 최대값

 

 

배열을 넣는 것 말고도 이런 식으로도 쓸 수 있다 

// 우리가 만든 함수
func sum(_ numbers: Int...) -> Int {
    return numbers.reduce(0, +)
}

sum(1, 2, 3, 4, 5)  // 15 반환


func exampleFunction(_ items: String...) {
    // items는 함수 내부에서 [String] 타입이 됩니다
    print("받은 아이템 개수: \(items.count)")
    for item in items {
        print(item)
    }
}

// 호출 방법들:
exampleFunction()                    // 0개
exampleFunction("Apple")             // 1개  
exampleFunction("Apple", "Banana")   // 2개
exampleFunction("A", "B", "C", "D")  // 4개

 

유용하게 쓸 수 있을 듯 !

'IOS > Swift' 카테고리의 다른 글

[Swift] zip(_:_:)에 대하여..  (0) 2024.05.22
[Swift] suffix(_:)에 대하여..  (0) 2024.05.17
[Swift] prefix(_:)에 대하여..  (0) 2024.05.17
[Swift] joined(separator:)에 대해..  (0) 2024.05.09
[Swift] 고차함수 map(_:)에 대해..  (0) 2024.05.07