ユーザ定義関数の実行時の動作

Magicエンジン > ユーザ定義関数

ユーザ定義関数は、組み込み関数と同じように実行時に評価されます。

関数は、同期型の[イベント]ロジックユニットと同じように実行されます。

タスク関連の関数において世代番号が「0」に指定された場合、関数を実行したタスク自身を示します。ユーザ定義関数が親タスクで定義され、子タスクから実行された場合、ユーザ定義関数によって実行されたタスク関連関数における世代番号「0」は、ユーザ定義関数を実行した子タスクを示します。

また、ユーザ定義関数から呼び出されたタスクは、その関数を実行したタスクの子タスクとみなされます。

パラメータ渡し

一般的に、全てのパラメータは、関数に値が渡されます。パラメータの値を更新しても、更新された値を戻して参照することはできません。

VarCurrVarSetまたはVarCurrNVarIndexのような様々なVAR関数によって処理できる項目参照を渡すことができます。

戻り値

関数が実行されると、戻り値の式が評価され、その式の値が関数の戻り値と認識されます。関数が戻り値を持たない場合、関数は NULL を返します。

注意:

ユーザ定義関数は、EvalStr または EvalStrInfo関数を使用して評価することができます。

ユーザ定義関数と起動されたタスク

ユーザ定義関数が、起動されたタスク用に定義され、そのタスクが下位のタスクから起動された上位タスクのハンドラを持っている場合、ユーザ定義タスクは全体のハンドラ実行に対して有効です。

再帰的な呼出

ユーザ定義関数内に定義された処理コマンドで同じユーザ定義関数を呼び出すような再帰的な方法は使用しないでください。このような場合の実行結果は保証されません。

参照