학습
Swift 함수 정의 및 호출
Swift 함수 정의 및 호출 — 초급
함수 정의 및 호출
1. 도입 (왜 배워야 하는가)
프로그래밍에서 함수는 코드의 재사용성을 높여주는 중요한 구성 요소입니다. 함수는 특정 작업을 수행하는 코드 블록으로, 이를 통해 복잡한 작업을 간결하게 만들 수 있습니다. 실무에서는 반복적으로 사용되는 로직을 함수로 정의하여 코드의 가독성을 높이고, 유지보수를 용이하게 합니다. 만약 함수를 사용하지 않고 모든 코드를 한 곳에 작성한다면, 코드의 중복이 발생하고, 수정 시 여러 곳에서 변경해야 하므로 실수할 확률이 높아집니다.
2. 핵심 개념 설명
함수
함수는 특정 작업을 수행하는 코드의 집합으로, 입력값(매개변수)을 받아 결과값(반환값)을 돌려줄 수 있습니다. 마치 요리사가 레시피를 따라 요리를 만드는 것처럼, 함수는 특정 입력을 받아 정해진 방식으로 출력을 만들어냅니다.
매개변수와 반환값
- 매개변수: 함수가 작업을 수행하기 위해 필요한 입력값입니다.
- 반환값: 함수가 작업을 수행한 후 결과로 돌려주는 값입니다.
용어 정리
| 용어 | 설명 |
|---|---|
| 함수 정의 | 함수를 만들고, 어떤 작업을 수행할지 명시하는 것 |
| 함수 호출 | 정의된 함수를 실제로 사용하는 것 |
| 매개변수 | 함수를 호출할 때 전달하는 입력값 |
| 반환값 | 함수가 작업을 마친 후 내보내는 결과 |
3. 기본 코드 예제
가장 기본적인 함수 정의 및 호출의 예제를 살펴보겠습니다.
func greet(name: String) -> String {
return "안녕하세요, \(name)님!"
}
let message = greet(name: "철수")
print(message)
실행 결과:
안녕하세요, 철수님!
코드 한 줄씩 동작 설명:
func greet(name: String) -> String {:return "안녕하세요, \(name)님!":let message = greet(name: "철수"):print(message):- 함수는 코드의 재사용성을 높여주며, 복잡한 작업을 간결하게 처리할 수 있게 해줍니다.
- 매개변수와 반환값의 개념을 이해하면 함수를 더 효과적으로 사용할 수 있습니다.
- 실무에서는 다양한 상황에서 함수를 활용하여 코드의 가독성을 높일 수 있습니다.
- greet라는 이름의 함수를 정의합니다. 이 함수는 String 타입의 name이라는 매개변수를 받아들이고, String 타입의 값을 반환합니다.
- 함수가 호출되면, 매개변수 name을 사용하여 인사 메시지를 생성하고 반환합니다.
- greet 함수를 호출하며, name에 "철수"라는 값을 전달합니다. 반환된 메시지는 message 상수에 저장됩니다.
- message의 내용을 출력합니다.
4. 실전 활용 예제
예제 1: 계산기 함수
쇼핑몰에서 가격을 계산할 때 사용되는 간단한 함수입니다.
func calculateTotalPrice(price: Double, quantity: Int) -> Double {
return price * Double(quantity)
}
let totalPrice = calculateTotalPrice(price: 10000.0, quantity: 3)
print("총 가격: \(totalPrice)원")
상황 설명: 이 함수는 특정 가격과 수량을 받아서 총 가격을 계산합니다.
예제 2: 평균 계산
학생의 점수를 평균내는 함수입니다.
func calculateAverage(scores: [Double]) -> Double {
let total = scores.reduce(0, +)
return total / Double(scores.count)
}
let averageScore = calculateAverage(scores: [90.0, 80.0, 70.0])
print("평균 점수: \(averageScore)")
상황 설명: 이 함수는 점수 배열을 받아 평균 점수를 계산하고 반환합니다.
5. 흔한 실수와 주의사항
실수 1: 매개변수 타입 오류
잘못된 예:
let wrongMessage = greet(name: 123) // 오류 발생
올바른 예:
let correctMessage = greet(name: "123") // 문자열로 전달
실수 2: 반환값을 잊음
잘못된 예:
func noReturn() {
// 반환값 없음
}
let result = noReturn() // 오류 발생
올바른 예:
func returnValue() -> String {
return "값을 반환합니다."
}
let result = returnValue() // 정상 작동
6. 정리
다음에 학습하면 좋은 주제는 함수 오버로딩과 클로저입니다. 이 두 개념을 통해 함수의 활용도를 더욱 높일 수 있습니다.