加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数组 – Delphi传递动态逻辑数组来运行

发布时间:2020-12-15 09:38:11 所属栏目:大数据 来源:网络整理
导读:我有一个Dynamc数组记录,我希望通过引用将数组中的一个项目传递给函数 例如,其中一个数组项–Arrray [1] .arecorditem是一个由6个字符组成的字符串String [6] 功能将是 – function dosomething(var AStringVal:string):Integer; 所以我会执行 Aresult:= dos
我有一个Dynamc数组记录,我希望通过引用将数组中的一个项目传递给函数

例如,其中一个数组项–Arrray [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;

你不能将参数定义为varor,你最终会得到你得到的错误!

额外:

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

TString6 = String[6];

对于Field和函数Parameter,请使用Type.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读