数组 - 定义和访问
Progress 支持一维数组,但它们被称为 EXTENTS
。
/* Define a character array with the length 5, and display it's length */
DEFINE VARIABLE a AS CHARACTER EXTENT 5 NO-UNDO.
DISPLAY EXTENT(a).
使用标准c 型支架访问阵列中的各个位置。但索引从 1 开始。最大大小为 28000。
a[1] = "A".
a[2] = "B".
a[3] = "C".
a[4] = "D".
a[5] = "E".
DISPLAY a[5].
结果:
索引 0 将生成错误:
DISPLAY a[0].
结果:
你还可以定义不具有设置长度的不确定数组。长度(范围)可以在运行时设置。但只有一次!
DEFINE VARIABLE a AS CHARACTER EXTENT NO-UNDO.
EXTENT(a) = 10.
EXTENT(a) = 1.
第三行将产生以下错误:
你可以使用 DEFINE VARIABLE
语句中的 INITIAL
选项来设置初始值。
DEFINE VARIABLE a AS CHARACTER EXTENT 3 INITIAL ["one","two","three"] NO-UNDO.
/* Some statements (like DISPLAY) can handle a whole array: */
DISPLAY a.
结果:
如果未设置所有范围,则剩余的将获得最后设置的值:
DEFINE VARIABLE a AS CHARACTER EXTENT 10 INITIAL ["one","two","three"] NO-UNDO.
DISPLAY a.
结果: