7.1.5 配列の記述規則

可変記号を配列として参照するとき,次の書き方に従って記述します。

可変記号[添字[,添字]…]

配列は値の集合を格納するときに使う変数(可変記号)です。配列は連想配列方式(associative array)です。配列の特定の値を参照するときに添字として,数値,文字列,または可変記号が使えます。

添字の指定はキーワード(文字列)で設定する方法(キーワード指定)と,数値で指定する方法(位置指定)の2とおりがあります。

<この項の構成>
(1) キーワード指定
(2) 位置指定
(3) 配列の規則
(4) 配列の添字の規則

(1) キーワード指定

添字にキーワード(文字列)で指定します。

(例)

@@set  @item = {name="KEY001", pic="X(4)"};
とすると,@itemは次のように参照される。
@item[name]          …KEY001
@item[pic]           …X(4)

また,次のように,添字に可変記号を使用することもできる。
(例1)1から3の順に設定されていった場合

1  @@set @TEST[a]=1;    …添字「a」の値は「1」
2  @@set @TEST[b]=2;    …添字「b」の値は「2」
3  @@set @i="a";

このとき,@TEST[@i]は1となる(@TEST[@i]は@TEST[a]のため)。
(例2)

@@set @WORKS={
  {level=1,name="ITM001"},
  {level=2,name="ITM002",pic="X(4)"},
  {level=2,name="ITM003",pic="9(4)"}
};
@@set @C = @WORKS[2];       … @Cには
                              {level=2,name="ITM002"
                              ,pic="X(4)"}が設定され
                              る。
@@set @D = @WORKS[3,name];  … @DにはITM003が設定さ
                              れる。
このとき,可変記号には次の値が設定されている。
@@count[@WORKS]    …3(@@countは配列の要素数を取り出
                    す関数)
@WORKS[1,name]     …ITM001
@WORKS[2,name]     …ITM002
@WORKS[2,pic]      …X(4)
@WORKS[3,name]     …ITM003
@WORKS[3,pic]      …9(4)
@C[name]           …ITM002
@C[pic]            …X(4)
@D[1]              …エラー(可変記号Dの内容が配列では
                    ないので構文エラーになる)

(2) 位置指定

{ }内に値を「,」で区切って並べると,一度に配列の値が設定できます。{ }内に値だけを並べた場合,その順番が配列の添字(1からの数字)になります。

(例)

@@set @Ar1={"a01","a02","a03"};
このとき
@Ar1[1]      …a01
@Ar1[2]      …a02
@Ar1[3]      …a03
@Ar1[4]      …値が設定されていないためエラーになる

(3) 配列の規則

(誤りの例)

MOVE  @Ar1  [1]    …可変記号と配列指定の間に空白がある。

(4) 配列の添字の規則

配列の添字は次の三つのうちのどれかを使用できます。