前提条件:learn-code-basics-7-specifying-the-result-of-a-function-in-verse
入力 は、プログラムに追加されて、変更を行うためにコードで使用される情報です。
前のレッスンで示された関数の例では、入力は必要ありませんでした。
GetNumberOfMousetrapsYouCanAfford() : int
上記の関数シグネチャの 丸括弧 ()
が空であることから、そのことがわかります。
パラメータ
関数シグネチャに パラメータ を追加することで、その関数が必要とする 入力 を定義することができます。
パラメータは、関数シグネチャで括弧の中に宣言されている定数です。パラメータを設定すると、その関数の 本体 内で使用することができます。
パラメータを含む関数の構文は次のようになります。
name(parameter : type) : type =
code block (コード ブロック)
次の例では、CoinsPerMousetrap
が関数 BuyMousetrap()
のパラメータになっています。
var Coins : int = 500
BuyMousetrap(CoinsPerMousetrap : int) : void =
set Coins = Coins - CoinsPerMousetrap
Print("Mousetrap bought!You have {Coins} coins left.")
上記のコードは以下のことを示しています。
- 開始時の整数値が 500 である
Coins
という変数があります (var Coins : int = 500
)。 BuyMousetrap()
という関数は、CoinsPerMousetrap
というパラメータを受け取ります。ただし、この関数は値を返す必要がないため、型はvoid
です。
引数
パラメータを受け取る関数を呼び出す場合、定数に値を代入する方法と同じ方法で、パラメータに値を代入しなくてはなりません。
関数に代入された値は関数の 引数 と呼ばれます。
BuyMousetrap()
関数を呼び出すには、括弧の中に引数を追加します。引数を指定する方法はいくつかあります。
次に例を示します。
-
BuyMousetrap(CoinsPerMousetrap := 10)
を使用できます。これは、関数のパラメータを定義する方法を模倣しています。10 は関数の引数であり、これによって結果の値が変わります。 -
レッスン 2 とレッスン 3 で学んだリテラルを覚えていますか? パラメータと同じ型の リテラル値 を使用することもできます。
-
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 =
code block (コード ブロック)
この関数を呼び出す場合も、引数はカンマで区切らなければなりません。これは、関数にパラメータを定義する方法を模倣しています。
サマリ
- パラメータ は、関数シグネチャで宣言されている定数であり、丸括弧で囲まれています。
- 引数 は、その関数のパラメータで使用される定数に代入される値です。
- 1 つの関数で複数のパラメータを使用する場合は、カンマで 複数のパラメータを区切る 必要があります。