프로그래밍 언어/Swift

[Swift] 스위프트 기본 문법 3 (함수)

Campus Coder 2023. 7. 8. 15:01
728x90
반응형
  1. 함수 선언
  2. 함수 호출
  3. 매개변수 기본 값
  4. 전달인자 레이블
  5. 가변 매개변수
  6. 함수의 타입 표현

 

1. 함수 선언

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

 

반환 값이 없다면 -> Void

-> Voidreturn 생략 가능

 

 

2. 함수 호출

sum(a: 3, b: 5)

매개변수가 없다면 괄호() 안쪽을 비워놓으면 된다.

 

 

3. 매개변수 기본 값

func 함수이름 (매개변수1: 타입, 매개변수2: 타입 = 매개변수 기본 값, ...) -> 반환타입 {
    함수 구현부
    return 반환값
}
func sum(a: Int, b: Int = 0) {
    print(a + b)
}

왼쪽부터 차례대로 매개변수 기본 값 할당

 

sum(a: 3) // 3

기본 값이 있는 매개변수는 생략 가능

 

 

4. 전달인자 레이블

함수를 호출할 때 매개변수의 역할을 명확하게 하거나

함수 사용자의 입장에서 표현하고자 할 때 사용

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

 

func sum(firstInt a: Int, secondInt b: Int = 0) {
    print(a + b)
}

함수 내부 - 매개변수 이름 사용

 

sum(firstInt: 3, secondInt: 5) // 8

함수 호출 - 전달인자 레이블 사용

 

 

5. 가변 매개변수

전달받을 값의 개수를 알 수 없을 때 사용

가변 매개변수는 함수당 하나 사용 가능

func 함수이름 (매개변수1: 타입, 매개변수2: 타입...) -> 반환타입 {
    함수 구현부
    return 반환값
}
func sum(a: Int, b: Int...) {
    print("a: \(a), b: \(b)")
}

 

sum(a: 3, b: 4, 5, 6) // a: 3, b: [4, 5, 6]
sum(a: 3)             // a: 3, b: []

가변 매개변수 부분을 비워놓으면, 빈 배열이 전달된다.

 

 

6. 함수의 타입 표현

swift의 함수는 변수, 상수 등에 저장이 가능하다.

매개변수를 통해 전달할 수도 있다.

(매개변수1타입, 매개변수2타입 ...) -> 반환타입
/*
func sum1(a: Int, b: Int) -> Int {
    return a + b
}
*/
var function: (Int, Int) -> Void = sum1(a:b:)
function(3, 5) // 8

반환타입을 생략할 수 없음

타입이 다른 함수는 할당할 수 없음

 

Int 매개변수와 Int... 매개변수는 타입이 달라 할당할 수 없다.

 

func function2(fun: (Int, Int) -> Void) {
    fun(3, 5)
}

function2(fun: sum1(a:,b:))
function2(fun: function)

 swift에서 함수는 매개변수로 받을 수 있다.

728x90
반응형