注释
在Pascal中,注释括在大括号中或带星号的圆括号中。Delphi 也认可C++ 风格的注释,即把注释放在双斜线后。例如 {this is a comment}
(* this is another comment *)
// this is a comment up to the end of the line
第一种注释方式较简略,使用也较为普遍;第二种方式在欧洲使用较广 ,因为欧洲的键盘缺少大括号;第三种方式的注释是从C++借用来的,只在32位版本的Delphi中可用,它在给一行代码加短注释时非常有用。
在这本书中我用斜体表示注释,用粗体表示关键词,以此与默认的Delphi语法风格表示一致。
上述三种不同的注释方式有益于进行嵌套注释。例如你要注销一段代码,而代码行中又包含真正的注释行,这时采用同一种注释方式是不对的: { ... code
{comment, creating problems} ... code }
正确的方法是插入第二种注释方式: { ... code
//this comment is OK ... code }
注意:如果左大括号或圆括号-星号后面跟美元符号($),那么其中的内容就成了编译指令,如 {$X+}。
实际上,编译指令仍是注释。例如,{$X+ This is a comment} 是合法的。这既是有效的编译指令又是一条注释,尽管明智的程序员很可能会注意把编译指令和注释分开。
使用大写字母
Pascal 编译器(不象其他语言的编译器)不考虑字符的大小写,因此标识符Myname、 MyName、 myname、 myName、 和MYNAME是完全相同的。总体上来说,这是Pascal的一大优点,因为在大小写敏感的语言中,许多语法错误是由不正确的大写引起的。
注意:Pascal语言的大小写不敏感特性有一个例外:控件包中的Register 过程必须以大写字母R开始,因为需要与C++Builder 兼容。
然而大小写不敏感也有不便之处:第一,你必须注意大小写不一致的标识符实际上是相同的,以避免把他们当成不同的元素使用;第二,你必须尽量保持大写使用的一致性,以提高代码的可读性。
大写使用的一致性不是编译器强制要求的,但是保持大写使用的一致性是值得提倡的好习惯。一个常用的方法是将每个标识符的第一个字母大写,标识符若由几个词组合而成(中间不能插入空格),每个词的第一个字母应大写: MyLongIdentifier
MyVeryLongAndAlmostStupidIdentifier
此外,编译器不编译代码中的空格、空行和Tab键空格,这些元素通称为空白,它们只用来提高代码的可读性,不影响编译过程。
不同于BASIC, Pascal 语句允许分行书写,即将一条长指令分割成两个或更多的代码行。允许语句分行的缺点(至少对许多BASIC程序员)是:语句结束时不能忘了加分号,更确切地说,必须记着把语句和紧接它的语句分开。语句分行唯一的限制是字符串不能跨行。
关于空格和语句分行的使用没有既定的规则,以下是几点经验:
Delphi 代码编辑器中有一条竖线叫右边线(Right Margin),你可以把右边线设置在60或70个字符处。如果以这条线为基准,代码不超过这条界限,那么打印到纸上的代码看起来会很好看。否则,打印时长语句会被随意分行,甚至在一个词的中间断开。
? 当一个函数或过程有多个参数,通常的做法是把各参数放在不同的行上。 ? 你可以在注释行前留一行空白,或把长的代码句分成较小的部分,这样能提高代码的可读性。
? 用空格隔开函数调用的参数,表达式中的运算符也最好用空格隔开。一些
程序员可能会对这些提议不以为然,但我坚持认为:空格是
免费的,你不必为使用空格付费,何乐而不为呢?
?
优化版面
关于代码编写风格的最后一条建议是:尽量使用空白优化版面。这一条很容易做到,只需要在写复合句时,以上一句为参照,下一句向右缩进两个空格,复合句内嵌的复合句缩进四个空格,依此类推。例如: if ... then statement;
if ... then begin
statement1; statement2; end;
if ... then begin
if ... then statement