함수는 특정 기능을 묶어놓은 코드 블록입니다. 반복적으로 사용하는 로직을 하나의 이름으로 정의해서 재사용할 수 있게 해줍니다. Swift에서는 func 키워드를 사용해서 선언합니다.
func 함수이름(매개변수이름: 타입) -> 반환타입 {
// 실행할 코드
return 결과값
}
가장 단순한 형태입니다. 호출하면 어떤 동작을 수행하지만, 외부에서 값을 받지 않습니다.
func sayHello() {
print("Hello, world!")
}
sayHello()
// 출력: Hello, world!
외부에서 값을 받아서, 그 값을 바탕으로 동작을 수행합니다. 매개변수의 타입을 꼭 지정해야 합니다.
func greet(name: String) {
print("Hello, \(name)!")
}
greet(name: "Eden")
// 출력: Hello, Eden!
매개변수는 콤마로 구분해서 여러 개 선언할 수 있습니다.
func add(a: Int, b: Int) {
print("합은 \(a + b)입니다.")
}
add(a: 3, b: 5)
// 출력: 합은 8입니다.
함수가 어떤 작업을 한 뒤, 결과값을 반환(return) 하는 경우입니다. 반환 타입은 -> 기호를 써서 명시합니다.
func square(of number: Int) -> Int {
return number * number
}
let result = square(of: 4)
print(result) // 출력: 16
✅ 주의: return 키워드를 사용해서 값을 반환해야 합니다.
현업에서 가장 많이 쓰이는 형태입니다.
func multiply(_ a: Int, by b: Int) -> Int {
return a * b
}
let product = multiply(3, by: 4)
print(product) // 출력: 12
✅ 여기서 _ 키워드는 외부에서 첫 번째 파라미터명을 생략할 수 있게 해줍니다. (multiply(3, by: 4)처럼)
| 함수 형태 | 문법 예시 |
|---|---|
| 매개변수 없음 | func sayHello() |
| 매개변수 있음 | func greet(name: String) |
| 반환값 있음 | func square(of number: Int) -> Int |
| 매개변수 + 반환값 있음 | func multiply(_ a: Int, by b: Int) -> Int |






함수의 정의와 형태들을 잘 정리해 주셨고, 과제 수행도 훌륭히 진행되었네요~!
추가로, 함수의 매개변수로 입력된
a와b의 값을 바꿀 수 있을까요? 한 번 시도해 보시고, 어떤 현상이 발생하는지, 왜 이런 현상이 발생하는지 공부해 보시면 재밌을 것 같아요 :)