入力 は、プログラムに追加されて、変更を行うためにコードで使用される情報です。
前のレッスンで示された関数の例では、入力は必要ありませんでした。
GetNumberOfMousetrapsYouCanAfford() : int
これは、上の関数シグネチャの 括弧 () が空であることから分かります。
パラメータ
関数シグネチャに パラメータ を追加することで、その関数が必要とする 入力 を定義することができます。
パラメータは、関数シグネチャで括弧の中に宣言されている定数です。 パラメータを設定すると、その関数の 本体 内で使用することができます。
パラメータを含む関数の構文は次のようになります。
name(parameter : type) : type =
codeblock
次の例では、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 のリテラルを覚えていますか? パラメータと同じ型の リテラル値 を使用することもできます。
第 3 の方法は、先に宣言した変数や定数を引数として使用することです。 異なる値を引数に使用して関数を呼び出すと、異なる結果が得られます。
Versevar Coins : int = 500 # After this call, Coins is 490 BuyMousetrap(CoinsPerMousetrap := 10) # After this call, Coins is 485 BuyMousetrap(5) CoinsPerMouseTrap : int = 20 # After this call, Coins is 465 BuyMousetrap(CoinsPerMousetrap)
複数のパラメータ
パラメータをカンマで区切れば、関数にいくつでもパラメータを定義することができます。
2 つのパラメータを含む関数の構文は次のようになります。
name(parameter : type, parameter : type) : type =
codeblock
この関数を呼び出す場合も、引数はカンマで区切らなければなりません。これは、関数にパラメータを定義する方法を模倣しています。
まとめ
パラメータ は、関数シグネチャで宣言されている定数であり、 丸括弧で囲まれています。
引数 は、その関数のパラメータで使用される定数に代入される値です。
1 つの関数で複数のパラメータを使用する場合は、カンマで 複数のパラメータを区切る 必要があります。