Swift에서 함수는 코드의 재사용성을 높이고 논리적 구조를 명확히 하기 위해 반드시 필요한 구성 요소입니다. 함수는 하나의 작업을 정의한 코드 블록으로, 입력값을 받아 처리한 뒤 결과를 반환할 수도 있고, 단순히 동작만 수행할 수도 있습니다.
1. 함수 기본 형태
Swift에서 함수는 func
키워드를 사용하여 정의합니다. 함수 이름, 매개변수, 반환 타입, 함수 본문으로 구성됩니다.
func greet() {
print("안녕하세요!")
}
greet() // 함수 호출
위 예제는 입력값도 없고 반환값도 없는 가장 기본적인 함수 형태입니다. greet()
를 호출하면 "안녕하세요!"가 출력됩니다.
2. 매개변수가 있는 함수
함수는 입력값을 받을 수 있으며, 이를 매개변수(parameter)라고 부릅니다. 각 매개변수는 이름과 타입을 지정해야 합니다.
func greet(name: String) {
print("안녕하세요, \(name)님!")
}
greet(name: "민수")
매개변수는 여러 개를 받을 수도 있으며, 쉼표로 구분하여 선언합니다.
func add(a: Int, b: Int) {
print("합은 \(a + b)입니다.")
}
add(a: 3, b: 5)
3. 반환값이 있는 함수
함수는 처리 결과를 반환할 수 있습니다. 반환 타입은 매개변수 뒤에 ->
기호를 사용하여 명시합니다.
func square(number: Int) -> Int {
return number * number
}
let result = square(number: 4)
print("제곱 결과: \(result)")
이 함수는 Int
값을 받아 제곱한 뒤 결과를 Int
로 반환합니다.
4. 매개변수 레이블과 생략
Swift 함수는 외부에서 호출할 때 사용하는 매개변수 레이블(argument label)과 내부 이름을 다르게 설정할 수 있습니다.
func multiply(x a: Int, y b: Int) -> Int {
return a * b
}
let result = multiply(x: 3, y: 4)
레이블을 생략하려면 _
를 사용합니다.
func say(_ message: String) {
print("📢 \(message)")
}
say("이것은 라벨이 없는 호출입니다.")
5. 기본값을 가진 매개변수
함수의 매개변수에 기본값을 지정하면 호출 시 생략이 가능합니다.
func welcome(user: String = "손님") {
print("환영합니다, \(user)님!")
}
welcome() // "환영합니다, 손님님!"
welcome(user: "지수") // "환영합니다, 지수님!"
6. 반환값이 여러 개인 함수
Swift에서는 튜플(tuple)을 이용하여 여러 값을 반환할 수 있습니다.
func calculate(_ a: Int, _ b: Int) -> (sum: Int, difference: Int) {
return (a + b, a - b)
}
let result = calculate(10, 4)
print("합: \(result.sum), 차: \(result.difference)")
튜플의 각 항목에 이름을 붙여 사용하면 가독성을 높일 수 있습니다.
마무리
함수는 Swift에서 로직을 구성하는 가장 핵심적인 단위입니다. 매개변수와 반환값, 레이블, 기본값, 튜플 등을 적절히 활용하면 코드의 중복을 줄이고 가독성을 크게 향상시킬 수 있습니다. 실무에서는 함수 단위로 로직을 잘게 나누어 명확한 책임을 부여하는 것이 중요합니다.