Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

参照渡しのパラメータ (2)

パラメータは毎回参照によって渡す必要のないことを示します。例えば、プロシージャで複数の結果を返したい場合は、以下が可能です。

  • 参照渡しの使用法 :参照によって複数の変数を渡し、プロシージャで、それぞれが特定の結果を持つ変数を作成します。

  • 値渡しの使用法 :区切り文字列や結果リストを返す関数としてのプロシージャを記述します。

他の例としては、num を 2 倍にする場合、dblbyref1 プロシージャで参照渡しを使用します。あるいは、dblbyval プロシージャを使用して set num=$$dblbyval(num) と記述しても同じ結果を取得できます。

最後に、プロシージャに配列を渡す場合は、必ず参照渡しする必要があります。

passbyref.mac のコードは以下のとおりです。

passbyref ; passing parameters by value and reference
    ; pass by value
    read !, "Enter a number: ", num
    set dblnum = $$dblbyval( num )
    write !, num, " doubled is: ", dblnum

    ; num passed IN and OUT by reference
    write !, num
    do dblbyref1( .num )
    write " doubled is: ", num

    ; num passed IN by value
    ; result passed OUT by reference
    do dblbyref2(num, .result)
    write !, num, " doubled again is: ", result
    quit

dblbyval(anynum) PUBLIC
    { quit anynum * 2 }

dblbyref1(anynum) PUBLIC
    { set anynum = anynum * 2
    quit }

dblbyref2(anynum, double) PUBLIC
    { set double = anynum * 2
    quit }
FeedbackOpens in a new tab