728x90
Swift 함수 (Functions in Swift)
Swift 함수는 코드를 재사용 가능한 모듈로 묶어 프로그램을 구성하고 코드를 더욱 명확하고 간결하게 작성하는 데 도움이 되는 기본적인 구성 요소입니다.
1. 함수 선언 (Function Declaration)
func functionName(parameter1: parameterType1, parameter2: parameterType2) -> returnType {
// 함수 내용
}
- func 키워드는 함수 선언을 시작합니다.
- functionName은 함수의 이름입니다.
- parameter1, parameter2는 함수의 매개변수이며, 각 매개변수에는 타입(parameterType1, parameterType2)을 지정합니다.
- ->는 함수의 반환 타입을 나타냅니다. 반환 타입이 없는 경우 생략할 수 있습니다.
- {와 }로 묶인 영역은 함수의 내용을 나타냅니다.
예시:
func greet(name: String) -> String {
return "안녕하세요, \(name)님!"
}
let message = greet(name: "사랑")
print(message) // "안녕하세요, 사랑님!"
2. 함수 매개변수 (Function Parameters)
- 함수는 여러 개의 매개변수를 가질 수 있습니다.
- 매개변수에 기본값을 설정할 수 있습니다.
func calculateArea(width: Double, height: Double = 10.0) -> Double {
return width * height
}
let area1 = calculateArea(width: 5.0) // 50.0
let area2 = calculateArea(width: 5.0, height: 20.0) // 100.0
3. 함수 반환값 (Function Return Values)
- 함수는 값을 반환할 수 있습니다.
- 여러 개의 값을 반환하려면 튜플을 사용할 수 있습니다.
func swapValues(a: Int, b: Int) -> (Int, Int) {
return (b, a)
}
var x = 10
var y = 20
(x, y) = swapValues(a: x, b: y)
print(x) // 20
print(y) // 10
4. 함수 종류 (Types of Functions)
- 일반 함수 (Normal Function): 위에서 설명한 일반적인 함수입니다.
- 입력 매개변수 없는 함수 (Function Without Input Parameters): 매개변수 없이 값을 반환하거나 작업을 수행하는 함수입니다.
func currentTime() -> String {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return formatter.string(from: Date())
}
let now = currentTime()
print(now) // 2024-07-05 10:16:23
- 변환 함수 (Mutating Function): 함수 내에서 인스턴스 변수의 값을 변경하는 함수입니다.
struct Person {
var name: String
var age: Int
mutating func growUp() {
age += 1
}
}
var person = Person(name: "사랑", age: 30)
person.growUp()
print(person.age) // 31
5. 함수 활용
- 함수를 사용하면 코드를 재사용하고 프로그램을 더욱 명확하고 간결하게 작성할 수 있습니다.
- 함수를 사용하면 코드를 테스트하고 디버깅하기 쉬워집니다.
- 함수를 사용하면 복잡한 로직을 작은 함수 단위로 나누어 이해하기 쉬워집니다.
6. 참고 자료
'개발' 카테고리의 다른 글
Swift 열거형 (Enumerations) (0) | 2024.07.05 |
---|---|
Swift 클로저 (Closures in Swift) (0) | 2024.07.05 |
Swift 제어 흐름 (Control Flow) (0) | 2024.07.05 |
Swift 콜렉션 타입 (Collection Types) (0) | 2024.07.05 |
Swift 문자열과 문자 (Strings and Characters) (0) | 2024.07.05 |