使用 2-space 和 4-space 缩进有实际或技术优势吗?

Pim*_*Pim 6 compatibility coding-style

除了品味、习惯和个人喜好之外,在编码时使用 2-space 与 4-space 缩进有什么好处吗?

例如,在此Google 样式指南中,建议对 CSS 使用 2 空格缩进。

使用其中一种是否有任何技术优势,例如在不同系统之间传输数据时?

是否有被广泛接受的约定?(可能因语言而异)

Ste*_*n C 6

无论哪种方式,都没有明显的“技术”优势。事实上,我能想到的唯一“技术”问题是对源文件中字节数的影响。

  • 如果使用空格字符 (ASCII SP) 表示缩进,则 2 个空格是比 4 个空格少 2 个字符。

  • 如果您允许使用 TAB 字符,则(在 Windows 上)TAB 最多缩进 4 个空格,因此 TAB 字符会导致更少的字符。但另一方面,TAB 在许多其他操作系统上通常最多缩进 8 个空格,因此如果您希望源代码在所有平台上看起来都不错,则不应使用 TAB 进行缩进。

此外,通常的做法是“缩小”CSS、Javascript 和网络相关语言以使网站“更快”。除其他外,这将去除缩进,使这种微小的技术差异没有实际意义。

(对于人类可读的 CSS 版本,传输时间/存储空间的节省是微不足道的,无需担心。今天的系统针对大众市场进行了优化,其中存储和移动千兆字节大小的文件(电影)是司空见惯的. 源代码变得无足轻重。)


至于“实用”的优势,我想如果您不浪费太多带有深度缩进的屏幕空间,查看和编辑文件可能会更容易。从这个角度来看,2 个字符的缩进优于 4 或 8 个字符的缩进。

然而,这几乎是一个“个人品味”问题。(除非你用它作为理由向老板要求在你的办公桌上再放一个超宽显示器:-))


是否有被广泛接受的约定?

一般来说没有。

在某些语言中,也许,但我想不出任何。即使在 Java 中,最常见的缩进约定是 4 个空格,但其他的也是可以接受的。


Car*_*ngo 6

来自:Linux 内核编码风格

制表符是 8 个字符,因此缩进也是 8 个字符。有一些异端运动试图使缩进 4(甚至 2!)个字符深,这类似于试图将 PI 的值定义为 3。

基本原理:缩进背后的整个想法是明确定义控制块的开始和结束位置。尤其是当您连续看屏幕 20 个小时时,如果您有大的缩进,您会发现更容易看到缩进是如何工作的。

现在,有些人会声称拥有 8 个字符的缩进会使代码向右移动太远,并且难以在 80 个字符的终端屏幕上阅读。答案是,如果您需要 3 级以上的缩进,无论如何您都被搞砸了,应该修复您的程序。简而言之,8 个字符的缩进使事情更容易阅读,并具有在您嵌套函数过深时警告您的额外好处。注意那个警告

  • Linus [确实说过](https://github.com/torvalds/linux/blame/master/Documentation/process/coding-style.rst),不过:“编码风格是非常个人化的,我不会强迫我的观点对任何人来说,但这就是我必须能够维持的任何事情,而且我也更喜欢它用于大多数其他事情” (6认同)

use*_*421 5

我在书中使用了两个空格,否则你会很快用完水平空间。我在 IDE 中使用了四个。

在过去,它曾经是一个物理选项卡,八个空格,当然,在过去的日子里,但是几十年前代码嵌套太多了。