#module mod M #modinit dim M, 3 : M =1,2,3 return #modfunc f_mes;表示する mes "" + M(0) + ":" + M(1) + ":" + M(2) return #modfunc f_x2;倍にする repeat 3 M(cnt) *= 2 loop return #global newmod A, mod newmod B, mod f_mes A ;Aを表示 f_mes B ;Bを表示 mes ;改行 f_x2 A ;Aを2倍 f_mes A ;Aを表示 f_mes B ;Bを表示 mes ;改行 B = A ;BにAを代入※ f_mes A ;Aを表示 f_mes B ;Bを表示 mes ;改行 f_x2 B ;Bを2倍 f_mes A ;Aを表示 f_mes B ;Bを表示
現在モジュール型変数の使い方を勉強中です。
上のスクリプトを実行すると
下記のような出力結果になるのですが、
下から2行目が「2:4:8」になるようにしたいです。
(Mの内容をAからBへ値渡しで代入したいと言えばいいんでしょうか…)
1:2:3 1:2:3 2:4:8 1:2:3 2:4:8 2:4:8 4:8:12 ←ここが2:4:8になるようにしたい 4:8:12
スクリプトの※印の代入B=Aがアドレス渡しに
なっているからだと考えられるので
foreach Mとなる命令を作ればよいだろうと思ったのですが
BのM(cnt)=AのM(cnt) loop
↑のようにループを2回繰り返す方法しか思い付きませんでした。
#modfunc f_set array p_LIST foreach M p_LIST(cnt) = M(cnt) loop return #modfunc f_copy array p_LIST foreach M M(cnt) = p_LIST(cnt) loop return f_set A, C f_copy B, C
1度のループでこのようなことができる方法はないでしょうか?
ご回答よろしくお願い致します。