last updated:2021/06/03

←前へ 次へ→ 機能別Q&A 質問番号順Q&A


[HMM0025A]

●サブルーチンからの戻り値(複数の戻り値)

Q.
戻り値がひとつしか使えないのでは不便です。

A.

グローバル変数をサブルーチン側で用いることで対応できます。

//------- サンプルマクロ -------//
$a="123";
$b="456";
call calcStrToNum $a,$b;
message "和="+str(#wa)+"差="+str(#sa);
endmacro;

calcStrToNum:
    $$s1=$$1;
    $$s2=$$2;
    #wa=val($$s1)+val($$s2);
    #sa=val($$s1)-val($$s2);
return;
// ---------------------------- //

一見、return文で何も返していないようですが、#wa,#saでグローバル変数を使用しているので、これらの変数は元のルーチンでも参照できます。こうした「グローバル変数を用いた戻り値」では、実質的に複数の戻り値を返せます。これらは一般的なプログラミングにおける変数の有効範囲における留意点とほぼ同様です。


←前へ 次へ→ 機能別Q&A 質問番号順Q&A