如何将常数值矩阵作为过程调用的参数传递

Arn*_*old 5 delphi multidimensional-array

我想通过一个过程测试许多矩阵。每个矩阵都应作为矩阵传递,例如:

type TMatrix = array of array of integer;
procedure test_kernel (mat: TMatrix);
....
test_kernel ([[1, 2], [1, 3]]); // <== does not compile
Run Code Online (Sandbox Code Playgroud)

我找不到正确的语法来正确执行此操作(也尝试使用圆括号)。有谁知道如何将常量值矩阵作为过程参数传递?有可能吗?

编辑

由于无法实现,我决定使用:

type TMatrix = array of integer;
procedure test_kernel (rows, cols: integer; mat: TMatrix);
....
test_kernel (2, 2, [1, 2, 
                    1, 3]); 
Run Code Online (Sandbox Code Playgroud)

因此,我得到了矩阵的错觉和可读性。谢谢你们!

Uwe*_*abe 4

如果您使用稍微不同的 TMatrix 声明,实际上有可能做到这一点,但恕我直言,它不会增加代码的可读性:

type
  TVector = array of integer;
  TMatrix = array of TVector;
procedure test_kernel (mat: TMatrix);
....
test_kernel(TMatrix.Create(TVector.Create(1, 2), TVector.Create(1, 3)));
Run Code Online (Sandbox Code Playgroud)