我想在PHP,Python和大多数其他编程语言中执行以下操作:

my_array_name = [128, 38459, 438, 23674...]

所以我尽力在Delphi / Pascal中复制此代码:
HSVtoRGB := [0, 0, 0];

(这是用于返回给定HSV值的RGB数组的函数。)

但是我得到了错误:
[DCC Error] Unit2.pas(44): E2001 Ordinal type required
[DCC Error] Unit2.pas(45): E2010 Incompatible types: 'HSVRealArray' and 'Set'

任何想法?这是学校的工作-但我的老师不知道答案。

最佳答案

对于动态数组,是的:

type
  TIntArray = array of integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyArr: TIntArray;
begin
  MyArr := TIntArray.Create(10, 20, 30, 40);
end;

对于静态数组,您需要编写一个辅助函数:
type
  TIntArray = array[0..2] of integer;

function IntArray(const A, B, C: integer): TIntArray;
begin
  result[0] := A;
  result[1] := B;
  result[2] := C;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyArr: TIntArray;
begin
  MyArr := IntArray(10, 20, 30);
end;

这类似于Point函数如何创建TPoint记录。 (不过,记录和数组不是一回事。)

10-08 06:30