gpt4 book ai didi

delphi - 我可以在 Delphi/Pascal 中一次性分配数组中的项目吗?

转载 作者:行者123 更新时间:2023-12-03 14:35:04 26 4
gpt4 key购买 nike

我想用 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 记录的方式。 (不过,记录和数组不是一回事。)

关于delphi - 我可以在 Delphi/Pascal 中一次性分配数组中的项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6493727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com