我的应用程序中有一个需要返回数组的函数。我在几个地方发现了如何通过声明数组类型来做到这一点,例如

type
  TStringArray = array of string;

然后声明我的功能
function SomeFunction(SomeParam: Integer): TStringArray;

我的问题是尝试以同时具有接口(interface)和实现的形式进行设置。如何声明我的类型并在接口(interface)中具有该类型的函数声明?

最佳答案

unit Unit1;

interface

uses SysUtils;

type
  TStringArray = array of string;

function SomeFunction(SomeParam: integer): TStringArray;

...

implementation

function SomeFunction(SomeParam: integer): TStringArray;
begin
  SetLength(result, 3);
  result[0] := 'Alpha';
  result[1] := 'Beta';
  result[2] := 'Gamma';
end;

...

end.

黄金法则是,单元的interface部分描述了该单元使用的数据类型,以及该单元中驻留的类型,类和函数(它们的签名)。这是所有其他单位看到的。 implementation部分包含类和函数的实现。这对其他单位不可见。其他单位需要关心该单位的界面,该单位与外部单位签署的“契约(Contract)”,而不是在实现部分中找到的“实现细节”。

10-05 22:41