2017-01-09 103 views
1

我的理解是,自德尔福2009以来,编译器只接受数据类型Integer。但是,有大量的文章,如example 1example 2显示integerInteger的混合使用(!)。 AFAIK,Embarcadero websites专门使用Integer(好!),但Wikipedia article on Pascal专门使用integer以帕斯卡为单位的区分大小写(以Integer为例)

不幸的是,我没有进入到另一个Pascal编译器,但德尔福7同时接受integerInteger

int1: Integer; 
int2: intEGER;   // Allowed in Delphi 7 
struct1: MyRecord; 
struct2: mYrEcOrD;  // Also allowed => source of bugs! 

有人可以赐教帕斯卡是否是正式区分大小写或不,这是否改变与最新的Delphi编译器。

+0

Delphi中唯一区分大小写的是字符串比较(AFAIK)。没有其他的。 –

+1

你的理解是错误的,正如@DavidHeffernan所指出的那样。 – MartynA

+0

@MartynA:好的,很好学习。不知道我是怎么想到Delphi的后续版本区分大小写的。大小写敏感是一个有用的功能。 – AlainD

回答

10

你的理解是不对的。所有版本的Delphi都接受任何数据类型和任何其他标识符的大小写,除了外部互操作性的情况,例如从DLL导入符号。

+1

你不必为此而接受我的话。询问编译器并亲自查看。 –

5

与您的陈述相反,Pascal不区分大小写。所以Integerinteger是相同的标识符。

documentation状态此如下:

由于Delphi语言描述的是区分大小写的,像CalculateValue标识符可以写在以下任一方式:

CalculateValue 
calculateValue 
calculatevalue 
CALCULATEVALUE 

维基百科您在该问题中链接到的文章说:

Letter在Pascal源代码中忽略了这种情况。

有些作者更喜欢特定的大写字母并不意味着编译器会将不同的大写字母视为不同的标识符。它不是。

当然,大多数有经验的帕斯卡开发人员将使用一致的大写。当代码一致并且大写时,代码更容易阅读,例如使用Pascal案例命名约定,向读者传达意义。

对我来说,这是语言被设计为区分大小写的动机。作为一般规则,如果开发人员关心某些事情,那么编译器通常也会关心它。这样编译器可以检查开发人员是否犯错。但Pascal的大小写不敏感很早就被确定了,并且兼容性的原因永远不会改变。