스위프트에서 함수는 코드를 모듈화하고 재사용하기 위한 중요한 요소입니다. 함수는 값을 반환하거나 반환하지 않을 수 있으며, 파라미터를 받을 수 있습니다. 이 글에서는 스위프트에서 함수를 선언하고 호출하는 방법을 알아보겠습니다.
함수 선언
스위프트에서 함수는 func
키워드로 선언됩니다. 함수 선언의 기본 구조는 다음과 같습니다:
func 함수이름(파라미터1: 타입, 파라미터2: 타입, ...) -> 반환타입 {
// 함수 내용
return 반환값
}
여기서 파라미터1
, 파라미터2
는 함수에 전달되는 값의 이름이고, 타입
은 해당 값의 데이터 타입을 나타냅니다. 반환타입
은 함수가 반환하는 값의 데이터 타입을 나타냅니다.
예를 들어, 두 개의 정수를 받아서 그 합을 반환하는 함수는 다음과 같이 선언할 수 있습니다:
func addNumbers(a: Int, b: Int) -> Int {
return a + b
}
함수 호출
선언된 함수는 다음과 같이 호출될 수 있습니다:
let result = addNumbers(a: 5, b: 3)
print(result) // 출력: 8
addNumbers(a: 5, b: 3)
은 addNumbers
함수를 호출하고, a
에는 5, b
에는 3이 전달됩니다. 함수는 a
와 b
를 더한 값을 반환하고, 이 값은 result
에 저장되어 출력됩니다.
내부 및 외부 파라미터 명
스위프트에서는 함수 선언시 파라미터의 내부 이름과 외부 이름을 지정할 수 있습니다. 내부 이름은 함수 내부에서 사용되는 파라미터 이름이고, 외부 이름은 함수를 호출할 때 사용되는 이름입니다. 파라미터의 외부 이름을 지정하기 위해서는 파라미터 이름 앞에 외부 이름을 명시해줍니다.
예를 들어, 다음과 같이 함수를 선언할 수 있습니다:
func multiply(_ a: Int, by b: Int) -> Int {
return a * b
}
이 경우에는 a
의 외부 이름이 생략되었고, b
의 외부 이름이 by
로 지정되었습니다. 그래서 함수를 호출할 때에는 다음과 같이 호출할 수 있습니다:
let result = multiply(5, by: 3)
print(result) // 출력: 15
변수 파라미터와 상수 파라미터
함수의 파라미터로 변수를 받을 때는 var
키워드를 사용하고, 상수를 받을 때는 let
키워드를 사용합니다.
예를 들어, 다음과 같은 함수를 선언할 수 있습니다:
func incrementValue(_ value: inout Int) {
value += 1
}
이 함수는 변수를 파라미터로 받아 해당 변수의 값을 1만큼 증가시킵니다. 함수를 호출할 때에는 변수 앞에 &
기호를 붙여서 호출해야 합니다.
var number = 7
incrementValue(&number)
print(number) // 출력: 8
함수 중첩
스위프트에서는 함수를 다른 함수 내에 중첩하여 정의할 수 있습니다. 중첩된 함수는 외부 함수의 변수에 접근할 수 있습니다.
예를 들어,
func outerFunction() -> Int {
var x = 10
func innerFunction(y: Int) -> Int {
return x + y
}
return innerFunction(y: 5)
}
print(outerFunction()) // 출력: 15
innerFunction
은 outerFunction
내에서 정의되었고, x
에 접근하여 값을 반환합니다.
함수는 스위프트에서 코드를 구조화하고 모듈화하는 데에 중요한 수단입니다. 어떤 프로그램이든 다양한 함수를 활용하여 가독성 높고 유지보수가 쉬운 코드를 작성할 수 있습니다.
이상으로, 스위프트에서 함수를 선언하고 호출하는 방법에 대해 알아보았습니다. 기본적으로 스위프트 함수에 대한 이해를 바탕으로, 다양한 유형의 함수를 구현하고 활용할 수 있을 것입니다.
References:
- The Swift Programming Language - Functions (Apple Developer Documentation)
- Swift Functions (GeeksforGeeks)