更新时间:2022-08-25 16:17
在程序设计中,缩进风格(indent style)是管理代码块缩进以表达程序结构的一种约定。主要讨论自由形式语言,例如C及其后裔,但这也可以(并经常)适用于大多数其他编程语言(尤其是大括号编程语言),其中的空白字符则并不重要。缩进风格是代码风格的一个方面。
缩进在大多数编程语言中不是必要条件,而只是作为辅助符号。不过,缩进有助于更好地向人类阅读者表达程序的结构。尤其是用于澄清控制流程结构(例如条件或循环)与其内部、外部代码之间的关系。不过,部分语言(例如Python和occam)使用缩进而非大括号或关键词来确定结构,这被称为越位规则。在这种语言中,缩进对编译器或解释器有意义,而不仅仅是清晰度或风格问题。
缩进风格的主要区别在于复合语句的大括号({...})的位置,这通常是为涵盖一个控制声明(if、while、for...)。下表展示了本条目中讨论的所有风格的所在位置。为了一致性,缩进深度(字符数)统一使用4个空格表示,这未考虑各风格中首选的缩进深度。
缩进的尺寸通常与风格无关。许多早期程序使用制表符来缩进,从而简化输入和节约源代码文件的大小。Unix编辑器通常将制表符视为等同八个字符,而Macintosh和Windows环境将它视作四个字符,这使代码在各环境间交换时产生一种混乱。现代的编程编辑器通常可以设置任意的缩进尺寸,并会插入适当的制表符与空格。对Ruby、许多shell脚本语言和某些形式的HTML格式,通常为每个缩进级别使用两个空格。
使用制表符还是空格作为缩进字符是编程界的一项持续争论。杰米·加文斯基等一些程序员认为空格而非制表符有助增加跨平台可移植性。而如WordPress编码规范的作者则认为制表符增加了可移植性。
目前已有许多计算机程序可以自动校正缩进风格(依照程序作者或用户的偏好)以及制表符表示的缩进长度。其中很著名的一个是indent,这个程序包含在许多类Unix操作系统中。
在Emacs中,有多种命令可用于自动解决缩进问题。
Elastic tabstops是一种需要文本编辑器支持的制表风格,当块中的一行的长度改变时,整个文本块将自动对齐。