関数の定義
Verse言語では、関数を次のように定義します。
[関数名]([引数の名前] : [引数の型], ...) <[指定子]>... : [戻り値の型] =
[処理本体]
入力 | 内容 |
---|---|
[関数名] |
関数呼び出し時にどの関数を呼び出すかを識別するために必要となる名前。識別子とも呼ばれる。 |
[引数の名前] 、 [引数の型] |
関数に入力する値を識別する名前と型を指定する。関数は複数の引数を受け取ることができ、カンマ(, )区切りで指定可能。 |
[指定子] |
関数の動作を決めるエフェクト(後述)を指定する。任意の数を指定でき、指定しなくても問題なし。 |
[戻り値の型] |
関数から出力される値の型を指定する。 |
[処理本体] |
関数で実行する処理を記述する |
[引数の型]
や [戻り値の型]
に指定する型は、別の記事で紹介していますので参考にしてください。
引数、戻り値なしの関数
関数定義の一番簡単な例として、引数や戻り値のない関数 MyFunc
を定義するプログラムを次に示します。
戻り値がない場合は、戻り値の型 void
を指定することに注意しましょう。
MyFunc() : void =
Print("MyFunc Call")
関数 MyFunc
を呼び出すプログラムは次のようになります。
MyFunc()
実際に動作確認しましょう。
動作確認環境は、次の記事を参考にして構築してください。
関数 MyFunc
を定義するプログラムは、クラス output_log
の外側に追加します。
output_log
クラスのメンバ関数 OnBegin
には、関数 MyFunc
を呼び出すプログラムを追加します。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# 関数「MyFunc」を定義する
MyFunc() : void = Print("MyFunc Call")
# 「creative_device:を継承した、独自のデバイスクラス「output_log」を定義する
output_log := class(creative_device):
# ゲームプレイ開始時に実行されるメンバ関数
OnBegin():void=
# 定義した関数「MyFunc」を呼び出す。
MyFunc()
この状態でビルドして実行すると、「MyFunc Call」という文字列がログに出力されるはずです。
引数、戻り値ありの関数
2つの引数 A
と B
を受け取り、その和 A + B
を戻り値とする関数 MyFunc
を定義するプログラムを次に示します。
MyFunc(A : int, B : int) : int =
A + B
関数の呼び出し側では、関数の戻り値を変数に代入できます。
関数 MyFunc
の戻り値をログに出力するプログラムを次に示します。
var C : int := MyFunc(3, 5)
Print("MyFunc Result: {C}") # 「MyFunc Result: 8」が表示される
名前付き引数を持つ関数
関数呼び出し時に、名前付きでの引数指定を要求する場合は、引数名の前に ?
を追加します。
[関数名](?[引数1の名前] : [引数1の型], ...) <[指定子1]>... : [戻り値の型] = [処理本体]
名前付き引数 B
を持つ関数を定義するプログラムの例を次に示します。
MyFunc(A : int, ?B : int) : int =
A + B
名前付き引数を持つ関数では、呼び出し時に引数の名前付きで引数を渡す必要があります。
var C : int := MyFunc(-1, ?B := 6)
Print("MyFunc Result: {C}") # 「MyFunc Result: 5」が表示される
デフォルト値のある引数を持つ関数
デフォルト値のある引数を持つ関数も定義できます。
デフォルト値は名前付き引数に対してのみ設定可能です。
[関数名](?[引数1の名前] : [引数1の型] := [引数1のデフォルト値], ...) <[指定子1]>... : [戻り値の型] = [処理本体]
デフォルト値のある引数を持つ関数の定義例を次に示します。
MyFunc(A : int, ?B : int := 3) : int =
A + B
関数呼び出し時に、値を指定しない場合はデフォルト値が指定されたものとして関数の処理が行われます。
var C : int := MyFunc(-1)
Print("MyFunc Result: {C}") # 「MyFunc Result: 2」が表示される
以上が、関数を定義する方法です。
その他、UEFNのVerseに関する情報は、以下の記事にまとめています。