相关疑难解决方法(0)

为什么我不能返回任意数组的字符串?

编译器允许我执行以下操作:

procedure MyProc(const ADynData: array of string);
Run Code Online (Sandbox Code Playgroud)

要么

procedure MyProc(const ADynData: TStringDynArray);
Run Code Online (Sandbox Code Playgroud)

并传递任意数据,如下所示:

MyProc(['Data1', 'Data2']);
Run Code Online (Sandbox Code Playgroud)

但是,不允许

function MyFunc: TStringDynArray;
....
function MyFunc: TStringDynArray;
begin
    Result := ['Data1', 'Data2'];
end;
Run Code Online (Sandbox Code Playgroud)

要么

function MyFunc: TStringDynArray;
const
    CDynData: array[0..1] of string = ('Data1', 'Data2');
begin
    Result := CDynData;
end;
Run Code Online (Sandbox Code Playgroud)

为什么是这样?这在技术上是不是一回事?

对于这些特定场景,返回任意数组字符串的建议(和最有效)方法是什么?

arrays delphi delphi-xe3

6
推荐指数
2
解决办法
3449
查看次数

标签 统计

arrays ×1

delphi ×1

delphi-xe3 ×1