使用Console类型中的函数返回数组可以完成,但我试图创建一个函数,它接受一个整数n作为输入,并返回一个扩展的数组,以VCL形式的Delphi。我们怎么能这样做?
答案 0 :(得分:3)
在现代版本的Delphi中,您应该使用通用数组TArray<T>
。像这样:
function Foo(N: Integer): TArray<Extended>;
var
i: Integer;
begin
SetLength(Result, N);
for i := 0 to N-1 do begin
Result[i] := i;
end;
end;
我要强调的是,使用Extended
可能是错误的。这是一个相当不寻常且性能很差的10字节浮点类型。该类型仅适用于有限数量的处理器。几乎所有现实世界的浮点计算都是使用Single
或Double
,4字节和8字节IEEE-754浮点数据类型执行的。
答案 1 :(得分:2)
如果我的记忆对我有用,则必须通过重新输入来完成,即:
type
TResultType: array of extended;
function DoSomthing(): TResultType
begin
SetLength(Result, 2);
Result[0] := 1.2;
Result[1] := 3.4;
end;
答案 2 :(得分:0)
这不是VCL / Console问题,因为函数声明不依赖于您正在编写的应用程序类型。
Delphi(或任何Pascal)函数可以返回任何命名数据类型。只要在类型部分中声明了数组类型,函数就可以处理它。
例如
type
ExtArray : array of extended;
function IntToArray(i:integer):ExtArray;
begin
...
end;