可以使用控制台类型的函数返回数组,但我正在尝试创建一个函数,它以整数 n 作为输入并返回一个以 Delphi 的 VCL 形式扩展的数组。我们怎么能做到这一点?
问问题
572 次
3 回答
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
4Double
字节和 8 字节 IEEE-754 浮点数据类型执行的。
于 2014-06-17T08:23:40.233 回答
2
如果我没记错的话,这必须通过重新输入来完成,即:
type
TResultType: array of extended;
function DoSomthing(): TResultType
begin
SetLength(Result, 2);
Result[0] := 1.2;
Result[1] := 3.4;
end;
于 2014-06-16T14:47:59.660 回答
0
这不是 VCL/Console 问题,因为函数声明不依赖于您正在编写的应用程序的类型。
Delphi(或任何 Pascal)函数可以返回任何命名数据类型。只要在类型部分声明了数组类型,函数就可以处理它。
例如。
type
ExtArray : array of extended;
function IntToArray(i:integer):ExtArray;
begin
...
end;
于 2014-06-16T14:51:00.447 回答