縮進風格

在程式設計中,縮進風格(indent style)是管理代碼塊縮進以表達程式結構的一種約定。主要討論自由形式語言,例如C及其後裔,但這也可以(並經常)適用於大多數其他程式語言(尤其是大括弧程式語言),其中的空白字元則並不重要。縮進風格是代碼風格的一個方面。

簡介

縮進在大多數程式語言中不是必要條件,而只是作為輔助符號。不過,縮進有助於更好地向人類閱讀者表達程式的結構。尤其是用於澄清控制流程結構(例如條件或循環)與其內部、外部代碼之間的關係。不過,部分語言(例如Python和occam)使用縮進而非大括弧或關鍵字來確定結構,這被稱為越位規則。在這種語言中,縮進對編譯器或解釋器有意義,而不僅僅是清晰度或風格問題。

大括弧位置

縮進風格的主要區別在於複合語句的大括弧({...})的位置,這通常是為涵蓋一個控制聲明(if、while、for...)。下表展示了本條目中討論的所有風格的所在位置。為了一致性,縮進深度(字元數)統一使用4個空格表示,這未考慮各風格中首選的縮進深度。

大括弧位置風格
while (x == y) { something(); somethingelse();}K&R及變種:
1TBS、Stroustrup、Linux核心、BSD KNF
while (x == y){ something(); somethingelse();}Allman
while (x == y) { something(); somethingelse(); }GNU
while (x == y) { something(); somethingelse(); }Whitesmiths
while (x == y){ something(); somethingelse();}Horstmann
while (x == y){ something(); somethingelse(); }Pico
while (x == y) { something(); somethingelse(); }Ratliff
while (x == y) { something(); somethingelse(); }Lisp

制表符、空格及縮進尺寸

縮進的尺寸通常與風格無關。許多早期程式使用制表符來縮進,從而簡化輸入和節約原始碼檔案的大小。Unix編輯器通常將制表符視為等同八個字元,而Macintosh和Windows環境將它視作四個字元,這使代碼在各環境間交換時產生一種混亂。現代的編程編輯器通常可以設定任意的縮進尺寸,並會插入適當的制表符與空格。對Ruby、許多shell腳本語言和某些形式的HTML格式,通常為每個縮進級別使用兩個空格。

使用制表符還是空格作為縮進字元是編程界的一項持續爭論。傑米·加文斯基等一些程式設計師認為空格而非制表符有助增加跨平台可移植性。而如WordPress編碼規範的作者則認為制表符增加了可移植性。

工具

目前已有許多電腦程式可以自動校正縮進風格(依照程式作者或用戶的偏好)以及制表符表示的縮進長度。其中很著名的一個是indent,這個程式包含在許多類Unix作業系統中。

在Emacs中,有多種命令可用於自動解決縮進問題。

Elastic tabstops是一種需要文本編輯器支持的制表風格,當塊中的一行的長度改變時,整個文本塊將自動對齊。

相關詞條

熱門詞條

聯絡我們