参照の互換性規則は、以下の状況で適用されます。
- パラメーターに inOut 修飾子がある。
- JSF ハンドラーの onConstructionFunction プロパティーに指定された関数にパラメーターがある。
- 参照変数の割り当て、引き渡し、または戻しを行なっている (『参照変数』を参照)。
EGL での参照の互換性の規則は、以下のとおりです。
- 2 つの値に参照の互換性があるのは、
同じプリミティブ型を参照した場合のみです。
CHAR(7) と CHAR(8) に参照の互換性はありません ので注意してください。
- 非構造化レコードが別の非構造化レコードと参照の互換性があるのは、ソース内の各フィールドとターゲット内の各フィールドの型が同じ場合のみです。
- 構造化されたレコードと他の構造化されたレコード (または CHAR 変数) に参照の互換性があるのは、ソース・レコードの長さが同じか、ターゲットより長い場合のみです。
個々のフィールドの互換性は問題ではありません。
値型変数は、参照変数に代入できます。
この場合、EGL では非参照変数の値を新しいメモリーの領域にコピーし、参照変数がこの新規領域を指すようにします。
2 つの型には、代入互換性が必要です。
2 つの型が異なる場合、ソースの型はターゲットの型に変換されます。
参照変数は、値型変数に代入できます。
この場合、非参照変数には、参照変数が指し示す値が入ります。
2 つの型には、代入互換性が必要です。
2 つの型が異なる場合、ソースの型はターゲットの型に変換されます。
値から参照への代入は、以下の引数のいずれかを使用して関数を呼び出す場合にも行われます。
- in パラメーターに一致する参照型の引数。
- 参照パラメーターに一致する値型の引数。