1. Swift 함수 

- Swift 에서 함수는 func 라는 키워드를 사용

 

1-1) 반환함수 return 함수

- func 이름() -> 반환타입 {   함수 Body   } 

-매개변수(Parameter)가 없는 경우와 있는 경우를 아래의 예시로 살펴보자

return function

 

1-2) void 함수 

- func 이름() {   함수 Body   }  

-또는, func 이름() -> void {   함수 Body   }

- 반환함수에서 단순히 -> 반환타입만 빼주면 된다!

 

예시를 통해 살펴보자

void function

2. 전달인자 레이블 (Argument label) 

 이 파트를 들어가기에 앞서 매개변수(Parameter)와 전달인자(Argument)의 차이를 알아보자!

- 매개변수(Parameter) : 함수의 정의에 쓰이는 변수명

- 전달인자(Argument) : 정의된 함수를 사용 및 호출할 때 전달해주는 값 (매개변수의 실제 인풋값)

 

예시를 통해 알아보자

매개변수와 전달인자

example이라는 함수의 매개변수는 정의부분에 쓰인 num1이고, 그 함수를 호출하면서 넣어준 3 전달인자가 되겠다!

 

이제 매개변수와 전달인자의 차이를 알았으니, 전달인자 레이블에 대해서 배워보자

전달인자 레이블은 매개변수의 역할을 좀 더 명확하게 해주기위해 사용한다

가장 흔한 예시인 from과 to를 들어서 사용해보자

전달인자 레이블 from to 

emailAlert 라는 함수는 "이메일이 수신자에게 전달되었다." 라는 메세지를 반환한다.

여기에서 전달인자 레이블인 from, to 를 사용함으로써 전달인자들을 입력할 때 그들의 역할을 좀 더 명확히해줄 수 있다는 장점이 있다.

 

전달인자 레이블을 사용하지 않을 경우 -> 와일드카드 식별자(_)로 대체가 가능!

와일드카드 식별자 

그럼 이것들은 왜 사용하는 걸까??

이 전달인자 레이블과 와일드카드 식별자 사용은 전달되는 매개변수들이 많을 때 인자들의 역할을 명확하게 하여 사용하기에 편리하며, 다음의 예시처럼 레이블명에 따라 다른 함수로 구분되기에 중복함수를 지정할 때도 굉장히 유용하다.

emailAlert 라는 함수명을 가진 함수들이 세개가 있지만 매개변수 정의 부분이 다르기 때문에 자동완성 목록을 보면 컴파일러가 세 개의 다른 함수 (중복함수)로 인식하고 있다는 것을 확인할 수 있다.

 

3. 가변 매개변수

가변 매개변수 

- 매개변수를 정의할 때 몇 개의 값을 쓸 지 모르는 경우에 사용하며 이 매개변수는 배열로 인식되어 전달된다.

- 함수 정의 시 데이터 타입 옆에 ' ... ' 을 써서 사용한다

func 함수명 ( 매개변수명 : 데이터 타입 ... ) {      함수 body      }

 

예시를 통해 알아보자

guestList 라는 함수는 guests 들을 반환한다. 하지만 우리가 몇명의 게스트들이 오는 지 몰라 매개변수를 다 정의할 수 없으니 가변매개변수를 사용하여 아래 함수 호출 부문에 여러개의 전달인자를 넣어줄 수 있는 것이다!

+ Recent posts