我知道我可以做到这一点:
const arrayOfIntegers : Array[1..15] of Integer = (3,2,8,10,1,6,13,3,45);
但是我该怎么做呢?
var arrayOfIntegers : Array[1..15] of Integer; begin arrayOfIntegers := (3,45); end;
一旦我尝试编译上面的代码,我得到E2029′)’预期但’,’发现
解决方法
典型用途如下:
type TIntegerArray1to15 = Array[1..15] of Integer; const INIT_INT_1_15_ARRAY: TIntegerArray1to15 = (3,45); var arrayOfIntegers : TIntegerArray1to15; begin arrayOfIntegers := INIT_INT_1_15_ARRAY; .... use and update arrayOfIntegers[] end;
在这种情况下,您应该更好地定义自己的类型(代码不会更慢或更大,您可以在此类型的实例之间进行分配).并且您将确保您的阵列边界将按预期(1..15).
const语句将被编译为“reference”数组,它将被复制到arrayOfIntegers局部变量中.我已经把它写成大写字母,在声明常量(但不是强制性的 – 这仅仅是一个个人的品味)时,这是一种常用的用法.
如果你希望你的代码更通用和可重用(如果你想成为一个懒惰的程序员,那么这个IMHO是有意义的),你可以依靠动态数组和/或const参数数组(如果你的数组以索引0开头).