在mORMot的SynCommons.pas中有以下代码片段:
type
....
TTimeLog = type Int64;
^^^^第二个type关键字(在Int64前面)的用途是什么?
发布于 2014-06-12 21:33:16
来自Data Types, Variables, and Constants Index (Delphi)
当您声明一个与现有类型相同的类型时,编译器将新类型标识符视为旧类型标识符的别名。因此,给定以下声明:
类型TValue =实数;变量X:实数;Y: TValue;
X和Y是同一类型;在运行时,无法区分TValue和Real。这通常影响不大,但如果您定义新类型的目的是利用运行时类型信息,例如,将属性编辑器与特定类型的属性相关联-那么“不同名称”和“不同类型”之间的区别就变得很重要。在这种情况下,请使用以下语法:
类型newTypeName =类型KnownType
例如:
类型TValue =类型实数;
强制编译器创建一个名为TValue的新的不同类型。
对于var参数,formal和actual的类型必须相同。例如:
类型TMyType =类型整数;过程p(var t:TMyType);开始结束;过程x;变量m: TMyType;i:整数;开始p(m);//作品p(i);//错误!formal和actual的类型必须相同。结束;
https://stackoverflow.com/questions/24185525
复制相似问题