본문 바로가기
iOS/Swift

[iOS/Swift] 매개변수(parameter)와 전달인자(argument)

by iosdevlime 2022. 11. 17.

함수를 선언(정의)하고, 호출하는 방식은 이제 얼추 이해가 되지만..

 

구성요소 중,

'매개변수'에 대해 단번에 이해하긴 다소 부족한 포스팅 내용이었습니다.

 

함수(Function) 선언하고, 구성하고, 호출하기

 

[iOS/Swift] 함수(Function) 선언하고, 구성하고, 호출하기

특정 작업을 수행하기 위해, 호출할 수 있도록 이름 붙여진 일종의 코드 블록 함수에 대해 간략하게 지난 포스팅에서 다루어 보았습니다. 앞으로, 코드와 예제를 통해 무슨 형태의 키워드를 활

iosdevlime.tistory.com

 

그래서, 요번 포스팅에서는

함수기능의 한 축을 담당하는 매개변수에 대해 자세하게 알아보도록 하겠습니다.

 

 

 


 

 

매개변수(Parameters)의 정의

함수 내부, 혹은 외부에서 연산이나 기타 처리를 위해 활용되는 기능

 

가물가물한 매개변수를 다시 복기하기 위해 

이전 포스팅에서 다룬 예시코드를 끌어오자면 ? 

 

// callMessage 함수선언
func callMessage (customerName name: String, orderCount count: Int) -> String {
	"\(name)님, 주문하신 아메리카노 \(count)잔 나왔습니다"
}

 

전달인자와 매개변수

 

여기서 살펴보면,

매개변수 앞에 전달인자 함께 사용되고 있는 것을 확인할 수 있습니다.

 

매개변수, 그리고 전달인자는 각각 어떤 역할을 담당하고 있을까요?

 

 

 

 

매개변수와 전달인자

  • 매개변수는 2가지로 구성되며, 다음과 같은 역할을 담당합니다.
    • 매개변수 이름(Parameters Name)
      • 함수 내부 코드에서 특정 기능을 만들기 위해 활용하는 상수(?)입니다.
func callMessage (customerName name: String, orderCount count: Int) -> String {

	"\(name)님, 주문하신 아메리카노 \(count)잔 나왔습니다"
    	// name, count
    	// 매개변수 이름으로, 함수 내부에서 기능을 설정할 때 활용
    
}

 

    • 전달인자(Argument Label)
      • 함수를 외부에서 호출할 시, 사용자가 데이터를 입력할 수 있도록 도와주는 Label 입니다.
      • 내부에선 name, count를 하나의 상수로 활용했으나, 호출할 시 뒤에 있는 전달인자를 사용합니다.
func callMessage (customerName name: String, orderCount count: Int) -> String {
	"\(name)님, 주문하신 아메리카노 \(count)잔 나왔습니다"
}

let result = callMessage(customerName : "Lime", orderCount : 2)
					// customerName, orderCount
					// 함수 외부에서 사용되는 '전달'인자로, 뒤에 사용자가 직접 데이터를 입력


print(result) // "Lime님, 주문하신 아메리카노 2잔 나왔습니다"

 

 

  • 하지만, 보통 매개변수 이름이 전달인자의 역할을 함께 담당합니다 !
    • 다시 말해, 전달인자가 생략되어도 큰 문제가 없습니다.
    • 굳이 필요할 경우, 언더바(_) 문자 를 써서 Default값을 할당할 수 있습니다. 
더보기
func callMessage (name: String, count: Int) -> String {
    "\(name)님, 주문하신 아메리카노 \(count)잔 나왔습니다"
}

let result = callMessage(name: "Lime", count: 2)
					// name은 매개변수 이름이자, 전달인자의 역할을 모두 포함

 

 


 

 

매개변수의 2가지 종류에 대해 살펴보고,

각각의 기능과 역할에 대해 알아보았습니다.

 

하지만, 아직 못다한 매개변수에 대한 내용이 남겨져 있으니

다음 포스팅에서 조금 더 Deep하게 다뤄보도록 하겠습니다.

 

댓글