본문 바로가기
Swift

[Swift] 6. 함수

by CodingKwon 2021. 10. 5.

1. 매개변수와 반환 값이 있는 함수

func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
    /* 함수 구현부 */
    return 반환값
}

 

2. 매개변수가 있고 반환 값이 없는 함수

func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> Void {
    /* 함수 구현부 */
}

 

3. 매개변수가 없고 반환 값이 있는 함수

func 함수이름() -> 반환타입 {
    /* 함수 구현부 */
    return 반환값
}

 

4. 매개변수가 없고 반환 값이 없는 함수

func 함수이름() -> Void {
    /* 함수 구현부 */
}

 

5. 매개변수 기본 값이 있는 함수

func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 = 매개변수 기본값 ...) -> 반환타입 {
    /* 함수 구현부 */
    return 반환값
}

func test(you: String, me: String = "coding") {
    print("Hi \(you)! I'm \(me)")
}

// 매개변수 기본값을 가지는 매개변수는 호출시 생략할 수 있습니다
test(you: "han") // hi han! I'm coding
test(you: "han", me: "kwon") // hi han! I'm kwon
  • 매개변수의 기본 값을 설정할 수 있음
  • 기본 값을 갖는 매개변수는 가급적 맨 뒤에 선언하는 것이 좋음

 

6. 전달 인자 레이블

func 함수이름(전달인자 레이블 매개변수1이름: 매개변수1타입, 전달인자 레이블 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
    /* 함수 구현부 */
    return
}

// 함수 내부에서 전달 인자를 사용할 때에는 매개변수 이름을 사용합니다
func test(to you: String, from me: String) {
    print("Hi \(you)! I'm \(me)")
}

// 함수를 호출할 때에는 전달 인자 레이블을 사용해야 합니다
test(to: "han", from: "kwon") // hi han! I'm kwon
  • 함수를 호출할 때  함수를 호출하는 입장에서 매개변수의 역할을 명확하게 해 주기 위해 사용
  • 함수 내부에서는 전달인자를 사용할 때 매개변수 이름을 사용
  • 함수를 호출할 때에는 전달 인자 레이블을 사용

 

7. 가변 매개변수

func 함수이름(매개변수1이름: 매개변수1타입, 전달인자 레이블 매개변수2이름: 매개변수2타입...) -> 반환타입 {
    /* 함수 구현부 */
    return
}

func test(me: String, friends: String...) -> String {
    return "hi \(friends)! I'm \(me)!"
}
print(test(me: "yagom", friends: "han", "jun", "won"))
// hi ["han", "jun", "won"]! I'm kwon!

print(test(me: "kwon"))
// hi []! I'm kwon!
  • 전달 받을 값의 개수를 알기 어려울 때 사용
  • 매개변수 타입 뒤에 ... 을 붙임
  • 가변매개 변수는 함수당 1개만 가능

 

8. 함수의 타입 표현

 (매개변수1타입, 매개변수2타입 ...) -> 반환타입
  • 반환타입을 생략할 수 없음

 

'Swift' 카테고리의 다른 글

[Swift] 8. 반복문  (0) 2021.10.05
[Swift] 7. 조건문  (0) 2021.10.05
[Swift] 5. 컬렉션 타입  (0) 2021.10.05
[Swift] 4. Any, AnyObject, nil  (0) 2021.10.04
[Swift] 3. 데이터 타입  (0) 2021.10.04

댓글