함수 (Function) 란?
- 작업의 가장 작은 단위이자 코드의 집합이다.
- 하나의 기능을 하나의 함수로 만드는 것이 좋다.
- 함수의 형태는 아래와 같다.
func 함수명(파라미터이름:데이터타입) -> 반환타입 {
return 반환 값
}
func sum(a: Int, b: Int) -> Int {
return a+b
}
sum(a: 5, b: 3) // 8
- 만약 매개변수(파라미터)가 없다면 공란으로 두면 된다.
func hello() -> String {
return "Hello"
}
hello() // "Hello"
- 만약 반환 값이 없다면 void 또는 공란으로 두면 된다.
func hello2() -> Void {
print("Hello")
}
hello2() // "Hello"
func hello3() {
print("Hello")
}
hello3() // "Hello"
- 함수의 매개변수를 사용할 수 있다.
func hello4(name: String, greeting: String = "Hello!") {
print("\(name), \(greeting)")
}
hello4(name: "Amy") // "Amy, Hello!"
- 전달 인자 레이블을 사용한다면, 사용자의 입장에서 매개변수 역할을 명확하게 표현할 수 있어 코드의 가독성이 높아진다.
- 전달 인자 레이블은 함수 내에서 사용할 수 없으며, 함수를 호출할 때는 매개변수 이름을 사용할 수 없다.
- 함수 내에서는 매개변수 이름을, 함수 호출 시에는 전달 인자 레이블을 사용한다.
func sendMessage(from myName: String, to name: String) -> String {
return "Hello \(name)! I'm \(myName)!"
}
sendMessage(from: "Amy", name: "bora") // "Hello bora! I'm Amy!"
- 만약, 전달 인자 레이블을 사용하고 싶지 않다면 와일드카드 식별자(_)를 사용하면 된다.
func sendMessage(_ myName: String, _ name: String) -> String {
return "Hello \(name)! I'm \(myName)!"
}
sendMessage("Amy", "bora") // "Hello bora! I'm Amy!"
- 스위프트는 매개변수로 몇 개의 값이 들어올지 모를 때 가변 매개변수를 사용할 수 있다.
- 가변 매개변수의 타입은 <데이터타입...> 으로 나타낸다.
- 가변 매개변수는 0개 이상의 값을 받아올 수 있으며 가변 매개변수로 들어온 값은 배열처럼 사용 가능하다.
func sendMessage(myName: String, name: String...) -> String {
return "Hello \(name)! I'm \(myName)!"
}
sendMessage(myName: "Amy", name: "Bora", "Nari", "John")
// "Hello ["Bora", "Nari", "John"]! I'm Amy!"
참조
Fast Campus - 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.
'프로그래밍 > 스위프트' 카테고리의 다른 글
[Swift] 반복문 (0) | 2022.06.28 |
---|---|
[Swift] 조건문 (0) | 2022.02.10 |
[Swift] 컬렉션 타입 (0) | 2022.02.10 |
[Swift] 스위프트의 기본 데이터 타입 (0) | 2022.02.10 |
[Swift] 상수와 변수 (0) | 2022.02.09 |