別のルーチンの呼び出し
次の演習を始める前に、モジュールのサブルーチンを他のモジュールから呼び出す構文を学習する必要があります。これまで、ターミナルからの Basic サブルーチン呼び出しは、サブルーチン名とルーチン名の間に “^” を置く ObjectScript 構文 do main^myBASdatent() を使用していました。Basic あるいは ObjectScript のいずれかのサブルーチンを Basic から呼び出すには、サブルーチン名とルーチン名の間に “@” を置く Basic 構文 main@myBASdatent() を使用します。
サブルーチンに引数を渡す場合、Basic と ObjectScript は異なる構文を使用します。
渡す引数
呼び出し元言語 | 呼び出し先言語 | 構文 | 例 |
---|---|---|---|
ObjectScript | ObjectScript | 既定は値渡しです。呼び出しコードは、先行するピリオド (.) 付きの引数で、どの引数が参照渡しされるかを指定します。 | do sub^rou(a, .b) |
ObjectScript | Basic | 既定は値渡しです。呼び出しコードは、先行するピリオド (.) 付きの引数で、どの引数が参照渡しされるかを指定します。呼び出されたメソッドのシグニチャは、ByVal あるいは ByRef 引数修飾子を使用する場合もありますが、影響はありません。 | do sub^rou(a, .b) |
Basic | ObjectScript | 既定は参照渡しです。呼び出しコードは、先行する ByVal 付きの引数で、どの引数が値渡しされるかを指定します。呼び出しコードは、明確にするために ByRef も使用できます。 | sub@rou(ByVal a, b) |
Basic | Basic | この呼び出しは、呼び出されたメソッドのシグニチャに依存します。呼び出しコードは、ByRef あるいは ByVal を使用したシグニチャを上書きできます。 | sub@rou(a,b) |