前提条件:learn-code-basics-4-writing-simple-code-in-verse
これまでのレッスンでは、定数と変数を作成し値を格納して使用する方法、if
式や and
や or
などの判定演算子を使用してコード内で判定を行う方法を学びました。
このレッスンでは、プログラム内で簡単に再利用できるコードの書き方について説明します。
レッスン 2 では、式 が結果を生成する最小単位のコードであることを学び、さらに、式が 実行 されて値が出力されると、出力されたその値が 結果 になることも学びましたが覚えていますか?
このことを活用して、コードをより効率的なものすることができます。
式を他の式と組み合わせることで 関数 を作成でき、関数を使用すると、動作を毎回記述することなくコード内で繰り返し使用することができます。
関数で式を使用する
関数 (ルーチン とも呼ばれる) は、アクションを実行したり入力に基づいて出力を作成したりするための命令を与える、再利用可能なコードです。
関数は 式 の組み合わせで構成されます。
関数を定義するには以下が必要です。
- 一意の名前 (識別子)。
- 結果として返す情報の 型。
- 関数が 呼び出されたときに行う 動作。
次は関数の基本構文です。
name() : type =
code block (コード ブロック)

コード ブロックについては次のレッスンで詳しく説明しますが、このレッスンでは、コード ブロックは関数の構築に使用する式を入れておく場所と考えてください。
関数と関数呼び出し
関数 は基本的には、名前が付けられた 一連の式 です。
プログラムでは、関数をその名前で 呼び出す ことによってその関数を使用します。この呼び出しによって関数が 起動 (アクティブ化) されます。これが 関数呼び出し です。
これは、関数に含めたすべての式を何度も繰り返すのではなく、それらをまとめて名前付きの関数にグループ化して、プログラム内でその関数が呼び出されるたびにコンピュータがその関数を参照して、そこに含まれる式をすべて実行することを意味しています。
たとえば、常に CoinsPerMousetrap
に「100
」の値を持たせるのではなく、実行されるたびにランダムな値を選択することで値を変更するコードを記述することもできます。

以下の例では、GetRandomInt(1, 10)
式を使って 1 ~ 10 のランダムな数値を生成するように式が設定されています。
詳細は次のとおりです。
GetRandomInt() |
これは Verse の組み込み関数であり、その名前がその動作、つまりランダムな整数を生成することを表しています。 |
1, 10 |
生成できる数値の範囲を表しています。20, 50 を指定すると、20 ~ 50 の範囲の数値が生成されます。数値の範囲は、この式の名前の一部である () の中に含めます。 |
これは、設定した 1 ~ 10 の範囲のランダムな整数値を取得する関数を呼び出すようにコンピュータに指示しているため、関数呼び出し です。
この 関数 をコードで使用するには、その 名前 を使って呼び出します。GetRandomInt()
を呼び出すたびに新しいランダムな数値が生成されます。
これを使ってネズミ捕り器の値段をランダムに変更できます。
using { /Fortnite.com/Devices}
using { /Verse.org/Simulation}
using { /UnrealEngine.com/Temporary/Diagnostics}
using { /Verse.org/Random}
OnBegin<override>()<suspends> : void =
# Coins を 500 に初期化します。Coins は変数であるため、後で変更することができます。
var Coins : int = 500
#CoinsPerMousetrap を 1 ~ 100 の範囲のランダムな整数で初期化します。
CoinsPerMousetrap : int = GetRandomInt(1, 100)
# Coins の現在の値 (500) をログに出力します。
Print("Coins starts at {Coins}.")
# Coins を CoinsPerMousetrap だけ減らし、新しい値をログに出力します。
set Coins = Coins - CoinsPerMousetrap
Print("After buying one mousetrap, Coins is {Coins}.")
上記の例で示されているコードのほとんどの行には、そのコードの動作について説明するコメントが加えられていることに留意してください。 このようなコード コメントは、しばらくの間放置していたコードに戻って作業を再開する場合や、他のプログラマーがあなたのコードを変更したり、新しく何かを追加したりする場合などに役立ちます。
メソッド
レッスン 2 で、変数または定数に格納されている値に対してどのような演算を実行できるかを型によって定義する方法について学んだことを思い出してください。型によって実行できることは、他にもあります。
型にはその型に属する処理があるのと同じように、その型に属する関数もあります。そのような関数は メソッド と呼ばれ、特別な方法で呼び出す必要があります。
メソッドの呼び出し では、名前だけを記述して呼び出す (Print()
や GetRandomInt()
など) のではなく、変数 (または定数) の名前の後に .
を続け、その後にメソッドの名前を記述する必要があります。たとえば、変数 Cat
に対してメソッド Pounce()
を呼び出す場合は次のようにします。
Cat.Pounce()

クラス
クラス は、同じような動作とプロパティを持つ要素の作成に使用できるテンプレートです。クラスは 複合 型です。つまり、他の型のデータのバンドルで構成されます。
クラスを定義する場合に、そのクラスのデータを任意の サブクラス に 継承 させることができます。
次に、メソッドはこのクラスにアタッチされる関数となります。 そのため、すべての型ですべてのメソッドが機能するわけではありません。 メソッドは該当する型か、その型が継承するクラスのクラス定義で宣言されている必要があります。 これがまだ完全には理解できなかったとしても、心配しないでください。これは簡単な紹介であり、後でクラスの詳細な知識を得ることができます。
サマリ
- 関数 は、名前の付いた 再利用 可能な一連の式です。
- 関数は ルーチン とも呼ばれます。
- 関数を使用すると、複数行の同じコードを繰り返し入力 (または維持) しなくて済むため、時間が節約され、エラーが減ります。
- コード行で関数を再利用する際は、関数呼び出し を使って行います。
- メソッド は特定の型に属する関数であり、該当する型の変数または定数に対して呼び出す必要があります。
- クラス は 複合 型であり、他の型のデータを組み合わせて動作やプロパティを サブクラス と共有できます。