在Delphi中声明变量让我想到了一件我无法理解的事情。
问题是这样:声明字符串,可以观察到string
是保留字,同时声明其他数据类型,比如整数,数据类型限定符不是保留字而是标识符(即{{ 1}},我所说的资本。)
事实上,Delphi允许你转到Integer
的定义,你发现它包含在系统单元中,但它只是代表性的,因为有一条注释声明某些常量(如{{ 1}}),标识符(如Integer
),函数和过程直接内置于编译器中。
我无法弄清楚这种选择背后的原因。
有人可以帮忙吗?
对True
和Integer
类型之间差异的一点解释。下一个代码
string
是正确的,并按预期工作,而下一行
Integer
给出编译时错误。
答案 0 :(得分:7)
据我所知,自Turbo Pascal时代以来,string
是一个保留词。所以保持这种方式的原因必须是兼容性。
Pascal - > Turbo Pascal - > Object Pascal - > Delphi的。
检查这些资源。
答案 1 :(得分:4)
string
必须是保留字,因为它并非专门用于引用类型System.[Ansi|Unicode]String
。如果string
是某个内部编译器类型的简单别名,则string[20]
将不再起作用。这对Integer
来说不是问题,因为Integer
总是意味着“类型System.Integer
”。