[Swift | 공식문서 읽기] 함수 선언 방법과 매개변수에 대해서 알아보자(1)
IT/Swift

[Swift | 공식문서 읽기] 함수 선언 방법과 매개변수에 대해서 알아보자(1)

오늘의 주제  : Swift 공식문서 함수편 :: 두번째 챕터 - Function Argumnet Labels and Parameter Names 

https://docs.swift.org/swift-book/LanguageGuide/Functions.html#ID169

 

Functions — The Swift Programming Language (Swift 5.5)

Functions Functions are self-contained chunks of code that perform a specific task. You give a function a name that identifies what it does, and this name is used to “call” the function to perform its task when needed. Swift’s unified function syntax

docs.swift.org

Swift공식문서를 참고 인용하였습니다.

Switf 공식문서

 

Swift공식문서 함수편 ::

참고로, 첫 번째 챕터는 매개변수를 0개, 또는 여러 개 사용할 수 있고, 리턴을 어떻게 이용하는 등 가장 기본적인 함수의 사용방법 설명 

오늘 설명할 두 번째 챕터 : 함수의 인자 Label과 매개변수이름

 

제가 요약한 설명을 읽어보시고 읽으시면 편하게 읽히실 겁니다.

 

기본적으로 함수는 매개변수 인자에 대해 라벨링을 2개를 붙일 수 있습니다.

하나는 함수 외부에서 사용할 라벨, 나머지 하나는 함수 내부에서 사용할 라벨입니다.

 

Argument Label, Parameter Name 가 어디에 위치하는지 확인해주세요.

argumentLabel은 함수외부에서 사용할 외부라벨

parameterName은 함수 내부에서 사용할 내부라벨라고 생각하시면 편합니다. 

*이해를 돕기 위해 함수기준 내부,외부라고 임의로 설정한 것입니다.

Swift에서 함수 선언 방법은 3가지로 구분 지을 수 있습니다. 

함수 선언 방법 
1. 함수( 외부라벨 내부라벨 : 자료형타입) 
2. 함수( _ 내부라벨 : 자료형 타입)
3. 함수 ( 외부라벨 : 자료형 타입) 

각 경우에 대해  add함수를 이용해 직접 코드로 예를 들어 설명해드리겠습니다. 

1. 함수(외부라벨 내부라벨 : 자료형 타입) 

A는 외부라벨  a는 내부라벨 / B는 외부라벨  b는 내부라벨 

 

4번 라인 : 외부라벨 A,B는 함수 호출시 사용이 됩니다.

7번 라인 : 내부라벨 a,b는 함수 내부에서 사용이 됩니다. 

 

어떤 방식인지 이해가시나요.  2번째 설명 하겠습니다. 

 

2. 함수( _ 내부라벨 : 자료형 타입)

_라는 건 외부라벨을 사용하지 않겠다 라는 의미입니다.

그러면 함수 호출 시 어떻게 사용하면 될까요

4번 라인 : add(3,5) 와 같이 외부라벨 없이 사용한게 보이시나요.

6번 라인 : 함수 선언 형태 확인 

이 방법이 편하긴하겠지만, 선호되는 코드는 아니라고 합니다.

 

3. 함수 ( 외부라벨 : 자료형 타입) 

이번에는 외부라벨 하나만 사용하는 것입니다. 

이 경우는 외부라벨 하나로 외부,내부에서 겸용으로 사용할 수 있습니다. 

4번 라인 : a와 b를 이용합니다. 

7번 라인 : 동일하게 a와 b를 이용합니다.

 

이제 Swift 공식문서를 보여드리겠습니다. 

더보기

함수 매개변수는 argument label과 parameter Name 을 갖는다. 

argument label은 함수가 호출될 때 사용되고, parameter Name은 함수구현에 사용된다. 

기본적으로, parameter Name은 argument label를 사용한다네요.

(코드 사진 )

모든 파라마터는 유일해야한다. argument label은 동일해도 되지만, 유일한게 아무래도 읽기 좋다.

 

더보기

Argument Label 명시한 경우 :  설명 1번

 

argument label를 parameter name 전에 써야한다. 띄어씌기 해야함.

 

여기서는 greet함수를 예시로 들어주었네요. 

func greet(person : String, from hometown : String) 

print(greet(~~~~~~~, from : ~~~)) 

 

이와 같이 argument label 을 사용하면, 의도가 명확하게 코드를 명시할 수 있다고 하네요.

 

 

더보기

Argument Label 생략한 경우 : 설명 2번

원하지 않으면 사용하지 (_) 를 이용해 사용할 수 있다. 

(코드사진)

만약 parameter가 argument label을 갖고 있다면, 반드시 호출 시 사용해야합니다. 

 

 

글이 너무 길어져 매개변수는 다음 편에서 연재하겠습니다. 

 

읽어주셔서 감사합니다.

부족한 점을 지적해주시거나 자유로운 코멘트 환영합니다.