티스토리 뷰
Variadic Parameters
가변 매개변수
오늘은 스위프트 문법인 Variadic Parameters, 가변 인자, 가변매개변수에 대해서 알아보겠습니다. Variadic Parameter에 대해 알아보기 전에 구체적인 그 의미를 구글 번역기를 통해 찾아봤지만...
위와 같이 그 뜻을 한국어로 알려주지를 않는 모습입니다.(구글번역기알못) 😢 결론적으로 Variadic의 뜻을 보자면, "임의의 갯수 인수를 받을 수 있는" 이라고 할 수 있습니다. "임의의 갯수를 받을 수 있다" 라는게 어떤 것인지 밑에서 보도록 하겠습니다.
다시한번 말하자면, Variadic parameter는 0개 ~ 다수의 특정 타입 인수를 받을 수 있는 매개변수라고 할 수 있습니다. Variadic 매개변수는 특정 타입을 명시해서 메서드가 호출될 때 전달되어 사용될 수 있습니다. Variadic 매개변수를 사용하기 위해서는 해당 매개변수의 타입 이름 뒤에 "..."를 붙여주어 사용합니다. ex) Int.../ Double...
가변할 수 있는(Variadic) 매개변수로서 전달 되는 매개변수는 메서드 블럭 내에서 적절한 타입의 배열로서 만들어질 수 있습니다. 예를들면, 가변인자(Variadic parameter)는 Double..., Int... 등의 타입으로서 명시될 수 있으며 이는 메서드 블럭 내에서 각각 [Double], [Int] 상수 배열(constant array)로서 만들어질 수 있습니다.
아래의 예시는 임의의 가변 길이를 가진 배열 리스트 값의 평균 값을 산출하는 산수 목적의 메서드를 사용할 때 Variadic 매개변수를 사용하는 예시가 됩니다.
Usage of Variadic Parameters
가변 매개변수 사용법
위의 메서드, calculateAverage는 다수의 Double 타입 인수를 받아 인수들의 평균값을 산출하는 메서드입니다.
calculateAverage 메서드의 매개변수, numbers는 Double... 로 정의된 Variadic 매개변수입니다.
즉 해당 매개변수는 [] 일수도, [3.14]일 수도, [1, 2, 3]이 될 수도 있습니다. 이렇게 받은 Variadic 매개변수의 총 합을 구한 뒤, Variadic 매개변수로 나눈 평균값을 반환하고 있습니다. (단, Variadic 매개변수는 위의 코드에서 볼 수 있듯이, 인자값이 없을 수도 있습니다. 이 경우, 평균값 연산 시 NaN(Not a Number)가 될 수 있으므로, 값이 없을 경우 1로 나눌 수 있도록 max메서드를 사용했습니다.)
위의 예시로 알 수 있듯이, 가변 매개변수(Variadic parameter)는 0개 혹은 다수의 인자를 받아 사용할때 사용할 수 있습니다.
NOTE
하나의 Variadic 매개변수 자체가 다수의 인수가 될 수 있기 때문에, 하나의 메서드에서 Variadic 매개변수는 단 한개만 사용될 수 있습니다.
이처럼 Variadic parameter 가변 타입의 경우, 0개 혹은 다수의 특정 타입 가변 인수가 들어올 수 있을때 사용할 수 있겠습니다. 👍🏼
지금까지 Variadic parameter 가변 인자 특징 및 사용법에 대해서 알아보았습니다. 즐거운 하루 되세요 👨🏻💻
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
Swift 문법, 스위프트의 do-while, repeat-while 사용법 (0) | 2020.07.15 |
---|---|
스위프트 문법 Nested Functions, 중첩 함수 사용법 (0) | 2020.07.14 |
Swift 프로토콜, AssociatedType 선언 활용하기 (0) | 2020.07.09 |
Swift typealias, 스위프트 별명 사용방법, 주의사항 (0) | 2020.07.07 |
Swift Generic 2) 제네릭 사용방법, 활용예시 (0) | 2020.07.06 |
- Total
- Today
- Yesterday
- 스위프트
- CoreML
- uikit
- Collection
- 프로그래머스swift
- 알고리즘
- swift 문자열
- Protocol
- SwiftUI
- publisher
- swift reduce
- swift
- 부스트코스
- 백준swift
- swift알고리즘
- 알고리즘문제
- 자연어처리
- ios
- 컬렉션
- 개발자문서
- 백준알고리즘
- swift string
- createML
- swift 기초
- 프로토콜
- swift문제
- 프로그래머스
- Swift 알고리즘
- 김프매매
- swift언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |