Delphi中关于 array of const 变体开放数组参数
来源:互联网 发布:阿里云邮箱电脑版下载 编辑:程序博客网 时间:2024/05/07 01:19
变体开放数组参数
变体开发数组参数允许向单个过程或函数传递不同类型表达式的数组。要定义含有变体开放数组参数的例程,需要指定array of const作为参数类型。如,
procedure DoSomething(A: array of const);
这里声明了一个叫做DoSomething的过程,该过程可以操作不同种类的数组。
array of const结构等价于array of TVarRec。TVarRec,在单元System中声明,用于表示一个记录,记录中有一个可以保存多种值(整数、布尔、字符、实数、串、指针、类、类引用、接口、变体等)的变体部分。TVarRec中的VType字段表示数组中每个元素的类型。一些类型作为指针传递而不传递值;特别是长串,作为指针传递并且必需转换为string类型。
下面的例子在函数中使用了变体开放数组参数,该函数对接受的每个元素创建一个串表示法,最后连接成一个串。该函数中调用的串处理例程都定义在SysUtils单元中。
function MakeStr(const Args: array of const): string;
const
BoolChars: array[Boolean] of Char = ('F', 'T');
var
I: Integer;
begin
Result := '';
for I := 0 to High(Args) do
with Args[I] do
case VType of
vtInteger: Result := Result + IntToStr(VInteger);
vtBoolean: Result := Result + BoolChars[VBoolean];
vtChar: Result := Result + VChar;
vtExtended: Result := Result + FloatToStr(VExtended^);
vtString: Result := Result + VString^;
vtPChar: Result := Result + VPChar;
vtObject: Result := Result + VObject.ClassName;
vtClass: Result := Result + VClass.ClassName;
vtAnsiString: Result := Result + string(VAnsiString);
vtCurrency: Result := Result + CurrToStr(VCurrency^);
vtVariant: Result := Result + string(VVariant^);
vtInt64: Result := Result + IntToStr(VInt64^);
end;
end;
可以用一个开放数组构造器(见开放数组构造器)来调用该函数。例如:
MakeStr(['test', 100, ' ', True, 3.14159, TForm])
上面的调用将返回串 "test100 T3.14159TForm”。
- Delphi中关于 array of const 变体开放数组参数
- Delphi中array of const应用
- delphi中array of const 借鉴
- delphi开放数组参数
- Delphi中array of const应用- Super Sonic - 博客园
- delphi 变参函数:array of const
- delphi 变参函数:array of const
- delphi 变参函数:array of const 转帖收藏
- [转]delphi 变参函数:array of const
- Delphi中的变体Variant数组相关函数
- delphi中string转array of char
- delphi中string转array of char
- delphi与变长参数——开放数组(1)
- delphi与变长参数——开放数组(2)
- 关于 delphi 里的变体记录
- array of const
- array of const
- delphi中String,PChar,PByte,Array of Char,Array of Byte 转换
- C语言位运算符:与、或、异或、取反、左移和右移
- pb中的六种窗体类型
- iBatis分页(基于Struts2和Freemarker)
- 360度环绕式全景 微软photosynth震撼体验
- PHP 获取当前时间的前一个月的时间
- Delphi中关于 array of const 变体开放数组参数
- Page.Cache
- SHELL 快捷键
- 索引常用的sql
- Castle ActiveRecord 连接各种数据引擎的配置文件归纳
- Javascript常用验证实例
- 关于ArcSDE版本压缩(Compress)的再研究
- 聚集索引和非聚集索引的区别
- (转)针对 Java 开发人员的 Dojo 概念