size()

sysLib.size() システム関数は、指定されたデータ・テーブルの行数、または指定された配列の要素数を戻します。この配列は、構造フィールド配列か、変数またはレコードの動的配列にすることができます。

配列名 (arrayName) が別の配列の副構造化要素内にある場合、 戻り値はその構造化フィールド自体における要素の数 (それを収容する構造における要素の出現総数ではなく) になります (このトピックの後半の『例』を参照)。

構文

  sysLib.size(arrayName ANY in)
  returns (result INT)
arrayName
配列またはデータ・テーブルの名前。
result
INT として指定されたデータ・テーブルの行数、または指定された配列の要素数。

この例では、sysLib.size() が戻す値を使用してループを制御します。
  // 数の配列の合計を計算
  sum = 0;
  i = 1;
  myArraySize = sysLib.size(myArray);

  while (i <= myArraySize)
    sum = myArray[i] + sum;
    i = i + 1;
  end
次に、以下のレコード定義を検討します。
  Record ExampleRecord
    10 siTop CHAR(40)[3];
      20 siNext CHAR(20)[2];
  end

ExampleRecord に基づいてレコード変数を作成する場合は、 sysLib.size(siNext) を使用して、 従属配列の要素数を決定できます。

  // count を 2 に設定
  count = sysLib.size(myRecord.siTop.siNext);

エラー条件

要素数の指定がない配列を使用してこの関数を呼び出すと、EGL によって NullValueException がスローされます。 以下に例を示します。
myArray INT[];
size(myArray);

配列またはデータ・テーブル以外の変数を参照すると、検証エラーが発生します。

互換性に関する考慮事項

表 1. 互換性に関する考慮事項
プラットフォーム 問題
JavaScript 生成 関数 sysLib.size() はサポートされていません。

フィードバック