如何为整个整数数组赋值?

Fab*_*ale 9 delphi

我知道我可以这样做:

const
  arrayOfIntegers : Array[1..15] of Integer = (3,2,8,10,1,6,2,13,13,3,13,13,13,3,45);
Run Code Online (Sandbox Code Playgroud)

但是我该如何做呢?

var
  arrayOfIntegers : Array[1..15] of Integer;
begin
  arrayOfIntegers := (3,2,8,10,1,6,2,13,13,3,13,13,13,3,45);
end;
Run Code Online (Sandbox Code Playgroud)

一旦我尝试编译上面的代码,我得到E2029')'预期,但','发现

Lin*_*nas 12

您没有提到您正在使用的Delphi版本,但在现代Delphi中,您可以执行以下操作:

var
  arrayOfIntegers : TArray<Integer>;
begin
  arrayOfIntegers := TArray<Integer>.Create(3,2,8,10,1,6,2,13,13,3,13,13,13,3,45);
end;
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这将是一个基于0的数组,而不是原来从1开始的数组. (2认同)

Arn*_*hez 11

典型用途如下:

type
  TIntegerArray1to15 = Array[1..15] of Integer;
const
  INIT_INT_1_15_ARRAY: TIntegerArray1to15 = (3,2,8,10,1,6,2,13,13,3,13,13,13,3,45);

var
  arrayOfIntegers : TIntegerArray1to15;
begin
  arrayOfIntegers := INIT_INT_1_15_ARRAY;
  .... use and update arrayOfIntegers[]
end;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您应该更好地定义自己的类型(代码不会更慢或更大,并且您将能够在此类型的实例之间进行分配).并且您将确保您的阵列边界符合预期(1..15).

const语句将被编译为"引用"数组,该数组将被复制到arrayOfIntegers本地变量中.我把它设为大写,在声明常量时有点常用(但不是强制性的 - 这只是个人品味).

如果你希望你的代码更通用和可重用(如果你想成为一个懒惰的程序员,恕我直言)你可能依赖于动态数组和/或array of const参数(如果你的数组以索引0开头).