gpt4 book ai didi

arrays - Delphi将动态记录数组传递给函数

转载 作者:行者123 更新时间:2023-12-03 15:20:25 25 4
gpt4 key购买 nike

我有一个 Dynamicc 记录数组,我希望通过引用将数组中的一项传递给函数

例如,数组项之一 - AArray[1].arecorditem 是一个 6 个字符的字符串 String[6]

该函数将是 -

function dosomething(var AStringVal:string):Integer;

所以我会执行

Aresult:= dosomething(AArray[1].arecorditem);

但是,当我尝试编译时,我得到错误类型:实际和形式 var 参数必须相同。

这可以吗?或者我应该将数组项分配给一个字符串,然后将该字符串传递给函数。

谢谢

科林

最佳答案

您的问题标题和实际问题不相同,因此我将向您概述这两个主题。

您需要定义一个数组类型

TMyRecord = record
Field1: String
Field2: String
end;

TMyRecordArray = Array of TMyRecord

function DoSomething(const ARecordArray: TMyRecordArray): Integer;

这是如果您想要将整个动态项目数组传递给函数的情况。如果您只想传递一项,您可以像这样定义函数:

function DoSomething(const ARecord: TMyRecord): Integer;

现在,如果您想将 Field1 的传递给函数,则必须将函数定义为:

function DoSomething(const AField: String): Integer;

您不能将参数定义为 var,否则您最终会遇到错误!

附加:

正如其他人所说,如果您在字段中使用固定长度的字符串,则需要将其定义为类型,就像我上面为 TMyRecordArray 演示的那样。

TString6 = String[6];

将该类型用于您的字段和函数参数。

关于arrays - Delphi将动态记录数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8403578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com