记录类型

记录类型


记录类型用于定义不同类型数据项的固定集合。记录中每个元素,或者说域,有它自己的类型。记录类型定义中列出了所有域,每个域对应一个域名,通过域名可以访问它。

下面简单列举了记录类型的定义、类型变量的声明以及这类变量的使用:

type
 Date = record
   Year: Integer;
   Month: Byte;
   Day: Byte;
 end;

var
 BirthDay: Date;

begin
 BirthDay.Year := 1997;
 BirthDay.Month := 2;
 BirthDay.Day := 14;

类和对象可以看作是记录类型的扩展。Delphi 库趋向于用类替代记录类型,不过 Windows API 中定义了许多记录类型。

记录类型中允许包含 variant 域,它表示多个域能公用同一内存区,而且域可以是不同类型(这相应于 C 语言中的联合 union)。换句话说,你可以通过 variant 域或说是一组域访问记录中同一个内存位置,但是各个值仍需区别对待。variant 类型主要用来存贮相似但又不同的数据,进行与类型映射(typecasting)相似的类型转换(自从 typecasting 引入 Pascal,已很少用到这种方法了)。虽然 Delphi 在一些特殊情况下还在用 variant 记录类型,但是现在已经被面向对象技术或其他现代技术代替了。

variant 记录类型的应用不符合类型安全原则,因此不提倡在编程中使用,初学者更是如此。实际上,专家级的编程人员确实需要用到 variant 记录类型,Delphi 库的核心部分就用到了这一类型。不管怎样,除非你是个 Delphi 专家,否则你应避免使用 variant 记录类型。


联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678