delphi中的init整数数组

use*_*184 5 delphi

如何初始化一个数组

TMyArray = array[1..2, 1..3] of Integer;
Run Code Online (Sandbox Code Playgroud)

我试过了

 MyArray  :  TMyArray;

 MyArray = ( (1,2,3),  (3,4,5) );
Run Code Online (Sandbox Code Playgroud)

但这种风格没有任何运气......

Dav*_*nan 9

您可以将类型化常量初始化为其声明的一部分:

const
  MyArrayConst: TMyArray = (
     (1, 2, 3),
     (3, 4, 5)
  );
Run Code Online (Sandbox Code Playgroud)

或者您可以通过这种方式初始化全局变量.

但是你不能以这种方式初始化局部变量.您可以声明常量,然后将其分配给您的变量.

var
  MyArray: TMyArray;
....
MyArray := MyArrayConst;
Run Code Online (Sandbox Code Playgroud)


ain*_*ain 5

如果您可以使用动态数组,您可以使用类似的代码

type
  TDynIntArray = array of Integer;
  T2DIntArray  = array of TDynIntArray;

var tmp: T2DIntArray;
begin
  tmp := T2DIntArray.Create(
                 TDynIntArray.Create(1,2,3),
                 TDynIntArray.Create(4,5,6)
          );
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用“TArray<TArray<Integer>>”,那么您将不需要定义类型,并且您不会强迫任何其他想要与您的代码交互的人使用相同的类型。泛型的副产品之一是它具有更宽松的类型兼容性规则,可以绕过过于挑剔的旧式 Pascal 规则。 (3认同)