设置动态数组的边界
静态数组允许定义它们的下限和上限:
StaticArray : array[5..7] of Integer;
我不知道如何在运行时对动态数组做同样的事情。
例如,如果我需要从静态数组复制元素,保持相同的索引,我不知道如何将其下限设置为Low(StaticArray)和上限设置为High(StaticArray):
var
StaticArray : array[5..7] of Integer;
DynamicArray : array of Integer;
i : integer;
begin
//initializing static array
StaticArray[5] := 1;
StaticArray[6] := 2;
StaticArray[7] := 3;
//setting the same length and bounds to the dynamic array
//?
//copying elements
i := 0;
for i := Low(StaticArray) to High(StaticArray) do
DynamicArray[i] := StaticArray[i];
end;
有没有办法设置动态数组的下限/0上限,或者它们是否总是具有下限和Length(Array) - 1上限?
回答
每次遇到关于Delphi语言的问题,都应该查阅官方文档。在这种情况下,名为Dynamic Arrays on Structured Types 的部分说明如下:
动态数组总是整数索引,总是从 0 开始。