これまでのレッスンでは、定数と変数を作成し、値を格納して使用する方法、if 式や and や or などの判定演算子を使用してコード内で判定を行う方法を学びました。
このレッスンでは、プログラム内で簡単に再利用できるコードの書き方について説明します。
レッスン 2 では、式 が結果を生成する最小単位のコードであることを学び、 さらに、式が 実行 されて値が出力されると、出力されたその値が 結果 になることも学びましたが覚えていますか?
このことを活用して、コードをより効率的なものすることができます。
式を他の式と組み合わせることで 関数 を作成でき、関数を使用すると、動作を毎回記述することなくコード内で繰り返し使用することができます。
関数で式を使用する
関数 (ルーチン とも呼ばれる) は、アクションを実行したり、入力に基づいて出力を作成したりするための命令を与える再利用可能なコードです。
関数は 式 の組み合わせで構成されます。
関数を定義するには以下が必要です。
一意の名前 (識別子)。
結果として返す情報の 型。
関数が 呼び出されたときに行う 動作。
次は関数の基本構文です。
name() : type =
codeblock
コード ブロックについては次のレッスンで詳しく説明しますが、このレッスンでは、コード ブロックは関数の構築に使用する式を入れておく場所と考えてください。
関数と関数呼び出し
関数 は基本的には、名前が付けられた 一連の式 です。
プログラムでは、関数をその名前で 呼び出す ことによってその関数を使用します。 この呼び出しによって関数が 起動 (アクティブ化) されます。 これが 関数呼び出し です。
これは、関数に含めたすべての式を何度も繰り返すのではなく、それらをまとめて名前付きの関数にグループ化して、プログラム内でその関数が呼び出されるたびにコンピュータがその関数を参照して、そこに含まれる式をすべて実行することを意味しています。
たとえば、常に CoinsPerMousetrap に「100」の値を持たせるのではなく、実行するごとにランダムな値を選択することで値を変更するコードを記述することなどができます。
以下の例では、GetRandomInt(1, 10) 式を使って 1 ~ 10 のランダムな数値を生成するように式が設定されています。
詳細は次のとおりです。
| これは Verse の組み込み関数で、名前がその動作、つまりランダムな整数を生成することを表しています。 |
| 生成できる数値の範囲を表しています。 |
これは、設定した 1 ~ 10 の範囲のランダムな整数値を取得する関数を呼び出すようにコンピュータに指示しているため、関数呼び出し です。
この 関数 をコードで使用するには、その 名前 を使って呼び出します。 GetRandomInt() を呼び出すたびに新しいランダム数値が生成されます。
これを使ってネズミ捕り器の値段をランダムに変更できます。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Random }
OnBegin<override>()<suspends> : void =
# Initialize Coins to 500. Because it is a var, you can change it later.
var Coins : int = 500
# Initialize CoinsPerMousetrap with a random integer between 1 and 100
上記の例で示されているコードのほとんどの行には、そのコードの動作について説明するコメントが加えられていることに留意してください。 このようなコード コメントは、しばらくの間放置していたコードに戻って作業を再開する場合や、他のプログラマーがあなたのコードを変更したり、新しく何かを追加したりする場合などに役立ちます。
メソッド
レッスン 2 では、変数または定数に格納されている値に対し、どのような処理ができるかを型によって定義する方法を学びましたが、覚えているでしょうか? 型によって実行できることは、他にもあります。
型にはその型に属する処理があるのと同じように、その型に属する関数もあります。 そのような関数は メソッド と呼ばれ、特別な方法で呼び出す必要があります。
メソッドの呼び出しは、名前を記述して呼び出す (Print() や GetRandomInt() など) のではなく、変数 (または定数) の名前で始めた後、. とメソッドの名前を記述する必要があります。 たとえば、Cat に対してメソッド Pounce() を呼び出す場合は、次のようになります。
Cat.Pounce()
クラス
クラスは、同じような動作とプロパティを持つ要素の作成に使用できるテンプレートです。 クラスは 複合 型です。つまり、他の型のデータのバンドルで構成されます。
クラスを定義する場合に、そのクラスのデータを任意の サブクラス に 継承 させることができます。
次に、メソッドはこのクラスにアタッチされる関数となります。 そのため、すべての型ですべてのメソッドが機能するわけではありません。 メソッドは該当する型か、その型が継承するクラスのクラス定義で宣言されている必要があります。 これがまだ完全には理解できなかったとしても、心配しないでください。これは簡単な紹介であり、後でクラスの詳細な知識を得ることができます。
まとめ
関数は、名前の付いた再利用可能な一連の式です。
関数はルーチンとも呼ばれます。
関数を使用すると、複数行の同じコードを繰り返し入力 (または管理) しなくてすむため、時間が節約され、誤りが減少します。
コード行で関数を再利用する際は、関数呼び出しを使って行います。
メソッド は特定の型に属する関数であり、該当する型の変数または定数に対して呼び出す必要があります。
クラス は 複合 型であり、他の型のデータを組み合わせて動作やプロパティを サブクラス と共有できます。