swift & iOS/swift

[swift] 함수에 여러 개의 argument 넣기(...)

whale3 2022. 1. 16. 16:52

스위프트 공식문서의 functions에서 variadic parameters 부분을 참고하였다. 

https://docs.swift.org/swift-book/LanguageGuide/Functions.html

 

variadic 라는 단어를 네이버 사전에서 찾아보았는데 이 단어 자체가 '임의의 여러 개의 argument를 취하는(taking many arguments)' 뜻인 것 같다. var...로 시작하는게 vary, various, variety 계열의 의미이겠거니 추측은 했지만.

https://en.dict.naver.com/#/search?query=Variadic&range=all


스위프트 함수에서 argument를 많이 전달할 수도 있다. 몇 개 전달할 지는 모르겠는데 한 개는 아니고 하여튼 여러 개 전달해야 할 때 사용할 수 있을 것 같다. ... 키워드를 사용하면 되고 이렇게 전달한 argument들은 해당 함수 내에서 배열처럼 다룰 수 있다. 

func xxx(_ words: String..., num: Int) {

    print("\(words.count) words") // 배열처럼 사용할 수 있기 때문에 count나 for문도 가능
    print("phone number: \(num)")
}

xxx("a", "b", "c", 777)

 

... 뒤에 이어서 오는 argument의 argument label은 생략할 수 없다. 생략해 버리면 해당 함수를 호출할 때 argument를 전달하는 과정에서 헷갈리기 때문이다. 어차피 아래처럼 작성해도 컴파일 에러가 난다. 

func xxx(_ words: String..., _ num: Int) {

    print("\(words.count) words")
    print("phone number: \(num)")
}

xxx("a", "b", "c", 777) // 777 는 두번째 argument인데 argument label이 없으니까 헷갈린다.

 

 

반응형