일급 함수
- parameter로 사용가능
- return 값으로 사용가능
- 익명함수
argument label
- 호출하는 쪽에서 사용하는 이름
parameter name
- function 안에서 사용하는 이름
Variadic parameters
- 0개 이상의 특별한 타입을 나열해서 파라미터로 넘길 수 있음
...을 넣어서 사용- 이렇게 선언된 경우 함수안에서 해당 type의 Array로 사용할 수 있음
func sum(values: Int…) -> Int { var result = 0
for value in values {
result += value
}
return result
}
sum(10, 20, 30) // 60 ```
inout parameters
- 일반적으로 함수에 전달된 파라미터의 변경은 함수안에서만 유효
- 하지만 function에서 바깥쪽 값을 바꿔야할 경우가 있음 (swap)
- inout으로 선언된 경우, 해당 변화가 호출된 쪽에 반영됨