func sumTwoNumbers(a: Int, b: Int) -> Int {
let sum = a + b
return sum
}
sumTwoNumbers(a: 2, b: 3) // 5를 반환
⭐️ 함수를 선언할 때는 parameter 라고 하고, 함수를 호출(call)할 때는 argument라고 한다.
아규먼트 레이블(Argument Label)은 함수를 호출할 때 사용하는 인수(argument)의 이름을 지정할 수 있는 기능이다.
// firstNumber, secondNumber이 아규먼트 레이블(Argument Label)이다.
func sumTwoNumbers(firstNumber a: Int, secondNumber b: Int) -> Int {
let sum = a + b
return sum
}
sumTwoNumbers(firstNumber: 2, secondNumber: 3) // 5를 반환
와일드카드 식별자(_)를 사용해 아규먼트 레이블을 생략할 수 있다.
// 와일드카드 식별자 _ 을 아규먼트 레이블 대신 써서 생략의 의미를 나타내었다.
func sumTwoNumbers(_ a: Int, _ b: Int) -> Int {
let sum = a + b
return sum
}
sumTwoNumbers(2, 3) // 5를 반환
이러한 와일드카드 패턴은 함수의 기능이 명확할 때 사용할 수 있다.
가변 파라미터는 하나 이상의 파라미터로 2개 이상의 아규먼트를 전달할 수 있게 한다.
가변 파라미터는 개별함수마다 하나씩만 선언할 수 있고, 기본값을 가질 수 있다.
// 아규먼트는 배열 형태로 전달된다.
// 아래 예시에서는 [1, 5, 10]
func sumManyNumbers(_ numbers: Int...) -> Int {
var total = 0
for n in numbers {
total += n
}
return total
}
sumManyNumbers(1, 5, 10) // 16을 반환
파라미터에 기본값을 정해 전달된 아규먼트가 없을 경우의 기본값을 지정할 수 있다.
// a: Int = 2 : a의 아규먼트가 없을 경우 기본값 2로 지정
func sumTwoNumbers(a: Int = 2, b: Int = 3) -> Int {
let sum = a + b
return sum
}
sumTwoNumbers() // 5를 반환