数组 – 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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |