在TSL中表达一个数组是很简单的,array(2,3,5,7,11)就是一个数组,里边有5个整数数据元素,分别为2、3、5、7、11,也就是说,数组的表达方式就是在在array()中将数组中的项使用逗号分隔就可以了。采用这种数组表达方式,TSL中的默认的数组下标从0开始,也就是说值2的下标为0,值3的下标为1,依次类推,值11的下标为4。由于数组中的值都是整数,我们称array(2,3,5,7,11)这样的数组为一维整数数组,这种类型我们可以描述为array of Integer。
如果array()的中间没有数组的项,这就是空数组了,空数组就是项数为0的数组。这个项数在计算机中有一个专有名词,叫做数组长度,英语表达一般为length。例如我们也可以说array(2,3,5,7,11)是一个数组长度为5的一维整数数组。
TSL语言的数组支持数组中的不同项的数据类型不相同,例如array(2,3,”Hello”)就是一个既包括整数又包括字符串的混合类型数组。
采用上述方式无法表达字符串下标的数组,字符串下标的数组的表达方式为array(“身高”:1.75,”体重”:85,”姓名”:”李四”),和0下标的数字下标不同的是,在项前加入了下标字符串和冒号。
事实上,数字下标也可以采用与字符串下标数组类似的表达方式,例如array(0:2,1:3,2:5,3:7,4:11)等同于array(2,3,5,7,11)。对于array(2,3,5,7,11)等于一个数组特例,即当数组下标为以0开始的连续序列时,数组下标以及冒号可以被省略。
基于前边讲到的多维数组的理解,多维数组也就不难表达了。例如一个二维数组可理解为一个”数组项的内容为一维数组”的一维的数组。那么array(array(0,1,2,3,4),array(3,4,5,6,7))就可以描述一个两行五列的二维的数组:
其表达的数组的内容为:
0 1 2 3 4
3 4 5 6 7
由于这样表达稍嫌繁杂,当数组为0开始的连续数字下标的时候,其项如果是数组,该项的数组的array可以被省略,也就是说,在这种情况,TSL语言允许省略掉除第一维以外其他维的array(),也就是说:
Array((0,1,2,3,4),(3,4,5,6,7))等同于上面的array(array(0,1,2,3,4), array(3,4,5,6,7))。
TSL的数组中不仅仅允许使用常量,还允许进行计算,例如array(1+3,2+5)和array(4,7)的结果是相同的。