Coding style 制表符与空间缩进

Coding style 制表符与空间缩进,coding-style,Coding Style,如果您阅读了任何编码样式指南,很可能会看到关于使用空格而不是制表符进行缩进的建议。一些指南明确指出:永远不要使用标签 我知道有可能引发一场关于标签和空间的核战争。这肯定不是我的本意。然而,我的真正意图是问你,这项建议是否有充分的理由。为什么每个人都说空格是缩进代码的最佳方式?标签在不同的计算机和打印机上可以有不同的大小。在原始计算机上,代码可能看起来很棒,但在另一台计算机或打印输出上,间距可能看起来很奇怪 使用空格时,无论使用哪台计算机,代码看起来都是一样的。使选项卡看起来正确在很大程度上取决于

如果您阅读了任何编码样式指南,很可能会看到关于使用空格而不是制表符进行缩进的建议。一些指南明确指出:永远不要使用标签


我知道有可能引发一场关于标签和空间的核战争。这肯定不是我的本意。然而,我的真正意图是问你,这项建议是否有充分的理由。为什么每个人都说空格是缩进代码的最佳方式?

标签在不同的计算机和打印机上可以有不同的大小。在原始计算机上,代码可能看起来很棒,但在另一台计算机或打印输出上,间距可能看起来很奇怪


使用空格时,无论使用哪台计算机,代码看起来都是一样的。

使选项卡看起来正确在很大程度上取决于显示或打印源代码的所有软件的配置/选择。如果你有一套受限制的此类软件,并且发现这对你来说不是一个实际问题,那就太好了——如果你觉得它有价值,那就试试吧。但是,请注意,当一行用制表符缩进时,然后继续在后续行中根据左括号的位置缩进,以对齐引号等。您将以一种视觉上无法验证正确性的方式混合制表符和空格(除非您的编辑器以不同方式显示制表符)。针对这一点,使用箭头键交叉标签或删除,可以更快,但也更令人困惑和沮丧。不同的人使用不同的制表符宽度在同一代码上干净利落地工作是很少见的,这可能是制表符的主要承诺。就我个人而言,我使用空格。

是的,但是制表符的优点是,您可以设置制表符的宽度,而不会实际影响源。谢谢你打印的解释。没想过(因为我不打印代码),我发誓我不想在这上面有火焰。我想知道空格比制表符有更多的优势。(我个人使用空格进行缩进,主要是因为我遵循了指南,但一些朋友敦促我切换到制表符;除了大人物所做的
之外,我无法提供任何其他有效的参数。
)通常[tab]是4x[space],但也可以是4.5x[space],这取决于Starkey所述的本地设置。然后你在混音中加入非比例字体,你就可以看到潘兴2号火箭雄伟地升空……:)如果两个开发人员有两个不同的缩进首选项呢?他们都可以随意设置标签宽度。然而,对于空间,这是不可能的。因此,“使用空格时,代码将始终看起来相同”的论点是无效的,因为许多时候看起来相同并不是具有不同首选项的不同开发人员想要的。无论您使用的是选项卡还是空格。谷歌在其编码风格中使用空格,这并不意味着你不能使用标签。做什么使你的代码对你和其他人来说更容易理解。顺便说一句,如果有人投票结束这个问题,知道为什么会这样会很有帮助。谢谢这在PSE上已经做得很彻底了:例如,“Space Won”(空间赢了)的可能副本有非常可靠的理由(备份)。基本上:您只能使用空格,这是可以的。空间在任何地方看起来都是一样的(每台计算机和队列中的每个位置)。制表符不能用于对齐,只能用于缩进。教新的程序员是相当令人困惑的。而且它在其他计算机配置上看起来也不一样。因此,请保持简单:2个空格+1对于制表符和空格的混合,您也可以指出,尝试在行之间排列是一件愚蠢的事情,因为您尝试排列的第一行的部分可能会因重命名而更改。请参阅Kevlin Henney的演讲,关于“完美”替代方案的七个无效编码习惯,使任何“排队”借口都落空。@JacobZimmerman听起来像又一场宗教战争:-)。就我个人而言,我喜欢开放我的选择,并在任何特定的代码中做我认为平衡最优的事情。@Tony Delray我不想对它抱有宗教信仰,我可以尊重你在这方面的实用主义,但我只是没有看到使用空格而不是制表符的真正好的理由。@JacobZimmerman:如果这两种方式都有很好的理由,这不会是一个没完没了的争论话题——总的来说,仍然可以有一个稍微好一点但明显好一点的选择,特别是在使用不同编辑器、格式工具、打印系统等的大型和多样化团队中工作时。。Henney的观点同样适用于80个列编码者,但由于使用了编辑器和工具,在某些环境中,重新格式化工作是一个净胜利。无论如何,在代码环境中有充分理由的读者不需要在这里寻找指导。