함수의 각 파라미터는 인자 라벨(Argument Label)과 파라미터 이름(parameter name)을 가지고 있다. 인자 라벨은 함수가 호출될 떄 사용되고, 각 인자는 함수 호출 시 인자 라벨 다음에 작성한다. 파라미터 이름은 함수를 구현 시 사용된다.
func someFunction(firstParameter : Int, secondParameter : Int) {
...
}
//다음 함수의 파라미터 이름과 같이 알아볼 수 있도록 작성한다.
func someFuction(argumentLabel parameterName : Int) {
...
}
//다음 파라미터 위치에서 보듯이 첫 아규먼트 레이블이 인수라벨, 다음이 파라미터명이다.
func someFunction(_ firstParameter : Int, secondParameter : Int) {
...
}
someFuction(1, secondParameter : 2)
//다음과 같이 함수를 호출 할 때 언더바로 인수라벨을 가진 친구는 파라미터 명칭을 생략한다.
func someFunction(parameterWithoutDefault : Int, parameterWithDefault : Int = 12) {
...
}
someFunction(parameterWithoutDefault : 3, parameterWithDefualt : 6)
//이렇게 하는 경우 파라미터 값은 6을 전달하지만,
someFunction(parameterWithoutDefault : 6)
//이렇게 하는 경우에는 기본값 12를 전달하게 된다.
func arithmeticMean(_ number : Double...) -> Double {
var total : Double = 0
for number in numbers {
total += number
}
return total / Double(numbers.count)
}
arithmeticMean(1, 2, 3, 4, 5)
//이렇게 하는 경우에는 입력된 모든 number 파라미터 값을 통해 배열로 계산하여 그 결과값을 리턴한다.
//정답은 3.0을 리턴한다.
func swapTwoInts(_ a: inout Int, _ b : inout Int) {
let temporaryA = a
a = b
b = temoraryA
}
//위의 함수는 간단히 b를 a로 a를 b로 바꾼다.
var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
//다음과 같이 함수 밖에서 선언된 변수에 대해서 함수를 통해 값을 변경해주는 것도 가능하다.