Входные данные — это информация, добавляемая в программу и используемая кодом для внесения изменений.
Примеры функций из прошлого урока не требовали входных данных:
GetNumberOfMousetrapsYouCanAfford() : int
На это указывают пустые круглые скобки () в сигнатуре функции выше.
Параметры
Добавление параметра в сигнатуру функции позволяет определить входные данные, которые требуются функции.
Параметр — это константа, которая объявляется в сигнатуре функции между круглыми скобками. После задания параметра его можно использовать в теле функции.
Синтаксис функции, включающей параметр, выглядит следующим образом:
name(parameter : type) : type =
codeblock
В следующем примере CoinsPerMousetrap является параметром функции BuyMousetrap():
var Coins : int = 500
BuyMousetrap(CoinsPerMousetrap : int) : void =
set Coins = Coins - CoinsPerMousetrap
Print("Мышеловка куплена! У вас осталось {Coins} монет.")
Этот код имеет следующий смысл:
- У вас есть переменная
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)
Несколько параметров
Вы можете определить столько параметров функции, сколько захотите, разделив параметры запятыми.
Синтаксис функции с двумя параметрами выглядит следующим образом:
name(parameter : type, parameter : type) : type =
codeblock
При вызове функции нужно также разделять аргументы запятыми подобно тому, как параметры определяются в функции.
Выводы
- Параметр — это константа, объявленная в сигнатуре функции. Она указывается в круглых скобках.
- Аргумент — это значение, присвоенное константе, которая используется в параметре данной функции.
- Несколько параметров в одной функции разделяются запятыми.