複製鏈接
請複製以下鏈接發送給好友

縮進風格

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

縮進風格簡介

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

縮進風格大括號位置

縮進風格的主要區別在於複合語句的大括號({...})的位置,這通常是為涵蓋一個控制聲明(if、while、for...)。下表展示了本條目中討論的所有風格的所在位置。為了一致性,縮進深度(字符數)統一使用4個空格表示,這未考慮各風格中首選的縮進深度。 [1] 
大括號位置
風格
while (x == y) { something(); somethingelse();}
K&R及變種:
1TBS、Stroustrup、Linux內核、BSD KNF
while (x == y){ something(); somethingelse();}
Allman
while (x == y) { something(); somethingelse(); }
while (x == y) { something(); somethingelse(); }
Whitesmiths
while (x == y){ something(); somethingelse();}
Horstmann
while (x == y){ something(); somethingelse(); }
while (x == y) { something(); somethingelse(); }
while (x == y) { something(); somethingelse(); }

縮進風格製表符、空格及縮進尺寸

縮進的尺寸通常與風格無關。許多早期程序使用製表符來縮進,從而簡化輸入和節約源代碼文件的大小。Unix編輯器通常將製表符視為等同八個字符,而Macintosh和Windows環境將它視作四個字符,這使代碼在各環境間交換時產生一種混亂。現代的編程編輯器通常可以設置任意的縮進尺寸,並會插入適當的製表符與空格。對Ruby、許多shell腳本語言和某些形式的HTML格式,通常為每個縮進級別使用兩個空格。
使用製表符還是空格作為縮進字符是編程界的一項持續爭論。傑米·加文斯基等一些程序員認為空格而非製表符有助增加跨平台可移植性。而如WordPress編碼規範的作者則認為製表符增加了可移植性。 [2] 

縮進風格工具

目前已有許多計算機程序可以自動校正縮進風格(依照程序作者或用户的偏好)以及製表符表示的縮進長度。其中很著名的一個是indent,這個程序包含在許多類Unix操作系統中。
Emacs中,有多種命令可用於自動解決縮進問題。
Elastic tabstops是一種需要文本編輯器支持的製表風格,當塊中的一行的長度改變時,整個文本塊將自動對齊。 [2] 
參考資料
  • 1.    Zawinski, Jamie. Tabs versus Spaces: An Eternal Holy War. 2000
  • 2.    Detecting Code Indentation. 2014-09-08.