입력(Input) 은 프로그램에 추가되는 정보이며 코드가 변경을 가하는 데 사용합니다.
이전 수업의 함수 예시에서는 아무런 입력이 필요하지 않았습니다.
GetNumberOfMousetrapsYouCanAfford() : int
위 함수 시그니처의 괄호 ()
가 비어 있는 점으로 알 수 있습니다.
파라미터
함수 시그니처에 파라미터(parameter) 를 추가하면 함수에 필요한 입력 을 정의할 수 있습니다.
파라미터란 함수 시그니처에서 괄호 사이에 선언되는 상수입니다. 파라미터를 설정하면 함수의 바디 에서 사용할 수 있습니다.
파라미터가 포함된 함수의 구문은 다음과 같은 형태입니다.
name(parameter : type) : type =
코드 블록
다음 예시에서 CoinsPerMousetrap
은 이제 BuyMousetrap()
의 파라미터입니다.
var Coins : int = 500
BuyMousetrap(CoinsPerMousetrap : int) : void =
set Coins = Coins - CoinsPerMousetrap
Print("Mousetrap bought! You have {Coins} coins left.")
이 코드의 의미는 다음과 같습니다.
Coins
라는 이름의 변수가 있으며, 정수 값 500으로 시작합니다.var Coins : int = 500
.BuyMousetrap()
이라는 이름의 함수는CoinsPerMousetrap
파라미터를 취합니다. 하지만 이 함수가 값을 반환하기를 원하지 않으므로 타입을void
로 지정합니다.
실행인자
파라미터를 취하는 함수를 호출할 때는 상수에 값을 할당하는 것과 같은 방식으로 파라미터에 값을 할당해야 합니다.
함수에 할당된 값은 함수의 실행인자 라고 합니다.
이제 BuyMousetrap()
함수를 호출하려면 괄호 안에 실행인자를 추가해야 합니다. 여기에는 몇 가지 방법이 있습니다.
예를 들면
-
함수에 파라미터를 정의하는 방법을 모방하여
BuyMousetrap(CoinsPerMousetrap := 10)
이라고 작성할 수 있습니다. 10은 함수에 대한 실행인자이며 결과 값을 변경합니다. -
2강과 3강의 리터럴을 기억하시나요? 파라미터와 동일한 타입의 리터럴 값 을 사용할 수도 있습니다.
-
또한 세 번째 방법으로, 이전에 선언한 변수나 상수를 실행인자로 사용할 수 있습니다. 다른 실행인자 값을 사용하여 함수를 호출하면 다른 결과를 얻을 수 있습니다.
var Coins : int = 500
# 이 호출 후 Coins는 490입니다
BuyMousetrap(CoinsPerMousetrap := 10)
# 이 호출 후 Coins는 485입니다
BuyMousetrap(5)
CoinsPerMouseTrap : int = 20
# 이 호출 후 Coins는 465입니다
BuyMousetrap(CoinsPerMousetrap)

다수의 파라미터
쉼표로 파라미터를 구분하기만 한다면 함수에 정의할 수 있는 파라미터의 수에는 제한이 없습니다.
파라미터가 2개인 함수의 구문은 다음과 같은 형태입니다.
name(parameter : type, parameter : type) : type =
코드 블록
함수를 호출할 때는 함수에 파라미터를 정의할 때처럼 실행인자를 쉼표로 다시 구분해야 합니다.
요약
- 파라미터 란 함수 시그니처에서 선언되는 상수이며 괄호 안에 존재합니다.
- 실행인자 는 해당 함수의 파라미터에서 사용되는 상수에 할당된 값입니다.
- 단일 함수의 여러 파라미터는 쉼표로 구분 해야 합니다.