関数呼び出しは、EGL で生成された関数かシステム関数を呼び出します。
呼び出された関数が終了すると、処理は、その呼び出しの直後にある文へ進むか、
(複雑な事例では) 式の中またはパラメーター・リストの中で必要とされる次の処理へ進みます。
関数は、ライブラリーまたはパッケージの名前、あるいはキーワード this で修飾できます。
これらの修飾子が必要な場合について詳しくは、有効範囲 を参照してください。
以下の種類の引数を関数に引き渡すことができます。
- リテラル
- 定数
- 変数
- 関数呼び出しまたはサブストリングを含む可能性のある、より複雑な数式、テキスト式、または日付/時刻式。
- 参照に対して評価を行う参照変数または式。
呼び出された関数が値を戻す場合、その関数が戻す値を使用する任意の場所で呼び出しを使用することができます。
例えば、以下のような条件文で関数を使用することができます。
if(getCustomer())
...
end
TRUE を戻す論理型関数またはゼロ以外の値を戻す数字関数がテストに合格します。
アクセス修飾子が in または inOut の場合は、リテラルを引数として使用できます。
(修飾子が inOut である場合は、
引数は in 修飾子が有効である場合と同じように扱われる点に注意してください。)EGL 生成のコードにより、パラメーター型の一時変数が作成され、その変数がその値で初期化されて、その変数が関数に渡されます。
パラメーターが構造化レコードである場合、引数は構造化レコードでなければなりません。
- 以下の規則は、BasicRecord ステレオタイプを持たない構造化レコードに適用されます。
- パラメーターおよび引数の型は同一でなければなりません
- アクセス修飾子は inOut でなければなりません
- BasicRecord ステレオタイプを持つ構造化レコードの場合、パラメーターおよび引数の型は次のように変化します。
- アクセス修飾子が in である場合、
渡される引数のサイズは受け取るパラメーターのサイズより大または等しい必要があります。
- アクセス修飾子が Out または inOut である場合、
渡される引数のサイズは受け取るパラメーターのサイズより小または等しい必要があります。