我的应用程序中有一个需要返回数组的函数。我在几个地方发现了如何通过声明数组类型来实现这一点,例如
type
TStringArray = array of string;
然后宣布我的功能
function SomeFunction(SomeParam: Integer): TStringArray;
我的问题是尝试以具有接口和实现的形式设置它。如何在界面中声明我的类型并具有该类型的函数声明?
答案 0 :(得分:33)
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.
黄金法则是单元的接口部分描述单元使用的数据类型,以及驻留在单元中的类型,类和功能(它们的签名)。这是所有其他单位看到的内容。实现部分包含类和函数的实现。这对于ohter单位是不可见的。其他单位需要关心单位的界面,本单位和外部单位签署的“合同”,而不是实施部分中的“实施细节”。
答案 1 :(得分:13)
如果Delphi是最新版本,则无需声明新类型,只需将其声明为TArray<String>
。
从上面的答案复制并粘贴的示例:
unit Unit1;
interface
function SomeFunction(SomeParam: integer): TArray<String>;
implementation
function SomeFunction(SomeParam: integer): TArray<String>;
begin
SetLength(result, 3);
result[0] := 'Alpha';
result[1] := 'Beta';
result[2] := 'Gamma';
end;
end.