我有这样一个数组:
12 | 18 | 22 | 26 | 28 | 32 | 34 | 36 | 50
16 23 33 37
如您所见,它由两行组成,但有些只有一个元素,有些有两个。
我正在尝试编写一个以数组数组作为参数的函数。
我宣称自己是一种类型:
type array_of_array_of_Byte = array of array of Byte;
function my_function(value_list: array_of_array_of_Byte)
我这样调用该函数:
my_function([[12,16], [18], [22,23], [26], [28], [32,33], [34], [36,37], [50]]);
但是我收到错误:
需要序数类型
我做错了什么?我正在使用Delphi XE4。
不幸的是,XE4 中尚不支持从常量数组表达式初始化动态数组的功能,它是在 XE7 中添加的:
https://blog.marcocantu.com/blog/2014_september_dynamic_arrays_delphixe7.html
因此,就您而言,您别无选择,只能手动构建数组,例如:
type
array_of_array_of_Byte = array of array of Byte;
procedure my_function(value_list: array_of_array_of_Byte);
var
arr: array_of_array_of_Byte;
begin
SetLength(arr, 9);
SetLength(arr[0], 2);
arr[0][0] := 12;
arr[0][1] := 16;
SetLength(arr[1], 1);
arr[1][0] := 18;
// and so on ...
my_function(arr);
end