美文网首页
程序员编码首行缩进使用Tab键好还是空格好?

程序员编码首行缩进使用Tab键好还是空格好?

作者: HanOBa | 来源:发表于2016-06-09 14:32 被阅读1342次

每个程序员都有自己喜欢的编码风格以及编码习惯,那么,问题来了。

一个很常用也很简单的问题,让程序员分为两派。编程时,到时是使用Tab按键来进行首行缩进好呢还是敲空格按键好呢???少侠,别急,带老夫给你慢慢分析。

Tab 占用更少的空间

使用 Tab 的文件或许和不使用 Tab 的在 gzip 压缩后并没有明显的区别。但是不使用 Tab 的话,就得多一道程序处理你的代码,以保证文件大小合理。你不得不依赖压缩工具。拿注释举例来说,注释很有用,即使无法压缩代码也要有注释。Tab 可以达到和空格同样的效果,所以不用 Tab 的话,平白无故就会膨胀代码。

Tab 可个性化

每个编辑器都可以调整 Tab 字符的宽度。这通常被认为是 Tab 的缺陷,但是实际上,这正是 Tab 的优势所在。有了 Tab,别人就能以自己觉得方便的格式查看你的代码,而不是用你喜欢的格式。Tab 将代码表现从逻辑中分离出来,就像是 CSS 将页面表现从 HTML 中分离出来一样。Tab 使读者更方便,而不是让编写者掌控一切。用空格就像是在说:“我不管你读代码时方不方便,这是我的代码,你就得按照我的方式来”。

Tab 更利于合作

每个程序员都有自己不同的想法,在团队合作中这种个性更要重视。有的程序员喜欢缩进 2 个空格宽,有的喜欢缩进 4 个空格宽。使用 Tab,每个程序员可以用自己喜欢的缩进方式编写代码,编辑器会根据所设置的 Tab 宽度自动调整缩进,而不必手动调整或者机械地在pull之后改成自己的缩进风格,而在提交前又改回统一的风格。

不需依赖特定工具

使用空格时,缩进实际上是 N 个字符而不是一个,只不过编辑器展现出来的看起来像是一个字符而已。而使用 Tab,你每次按下 Tab 键,编辑器会插入 N 个空格;每次按回退键或是在缩进处删除字符时,编辑器会自动删除 N 个字符。当你不能用编辑器,而被迫使用其它工具时(例如当在嵌入了像是 codemirror 等工具的 webapp 中写一小段代码时),你会被空格丑哭的。尤其是 codemirror 会将 Tab 转换为空格,别人看你的代码时也会被丑哭。

Tab 易于选择

假设你要选中所有缩进,想把缩进加倍或是将它们换成空格的话,用 Tab 就很容易操作。因为这是正它的意义所在,Tab 就是为了这类情况发明的。而空格的意义就多了,所以你无法简单的查找、替换空格。这种并不是为了发挥某种工具的原本功能而使用它的行为,我们通常称之为 hack。使用空格来进行缩进就是一种 hack。

使用 Tab 缩进的代码更易于复制粘贴

Norbert Süle 在评论中 指出,复制粘贴用空格缩进的代码时,除非别人惯用的缩进宽度恰好和你的一样,否则你就得手动调整缩进。使用 Tab 就不会出现这种问题,因为 Tab 就是 Tab,它会和代码完美的融合在一起。每个人都使用 Tab 的话,世界都会更加美好。

Web 中的 Tab 更宽怎么办!

这是个严重的问题,即使是钟情 Tab 的优秀程序员在上传代码前也会将 Tab 转换成空格。但是,CSS3 的 tab-size 属性 解决了这个问题。目前 Opera、Firefox 支持此属性,Webkit 很快也会支持。这个属性可优雅降级:即使浏览器不支持,呈现出来的代码虽然没有那么美观,但是仍具有良好的可读性。

空格一定不好吗?

空格是对齐的最佳选择,而不是缩进。比如下面这段代码:

var x = 10,

y = 0;

你需要 4 个空格使变量对齐。如果使用 Tab 的话,只有在 Tab 宽度为 4 的时候,变量才会对齐,否则格式就会乱掉。但是如果这段代码是缩进的,仍然应该用 Tab 而非空格。

另一个例子是对齐具有不同厂商前缀的 CSS3 属性。缩进应该使用 Tab,但是对齐应该使用空格。示例如下:

div {

-webkit-transition: 1s;

-moz-transition: 1s;

-ms-transition: 1s;

-o-transition: 1s;

transition: 1s;

}

好吧,我承认,我一直是使用Tab按键来缩进的,因为比起敲空格,它会省略几次对键盘的敲打并且Tab缩进会很规范。今天的分享就到这里,以上干货拿好不谢,因为我叫雷锋!

相关文章

  • 程序员编码首行缩进使用Tab键好还是空格好?

    每个程序员都有自己喜欢的编码风格以及编码习惯,那么,问题来了。 一个很常用也很简单的问题,让程序员分为两派。编程时...

  • 代码规范

    使空格不使Tab 不要在工程里使用Tab键,使用空格来进行缩进。在Xcode > Preferences > Te...

  • PSR2笔记

    代码 必须 遵循 [PSR-1] 中的编码规范 。 代码 必须 使用 4 个空格符而不是「Tab 键」进行缩进。 ...

  • YAML的数据结构及其封装

    基础语法规则 大小写敏感 使用空格缩进来表示层级关系 缩进时,不允许使用Tab键,只允许使用空格 缩进的空格数目不...

  • yaml 语法简易入门

    yaml 语法简易入门 语法特点 大小写敏感 通过缩进表示层级关系 禁止使用tab缩进,只能使用空格键 缩进的空格...

  • OC的代码规范

    代码格式 使用空格而不是制表符 Tab 不要在工程里使用 Tab 键,使用空格来进行缩进。在 Xcode > Pr...

  • OC代码规范1

    代码格式 使用空格而不是制表符Tab 不要在工程里使用Tab键,使用空格来进行缩进。在Xcode > Prefer...

  • Android Studio Setting

    1.显示空格。 我习惯显示空格,这样就能看出缩进是tab缩进还是空格缩进。建议使用空格缩进。Settings-->...

  • OC代码规范

    OC代码规范 一、代码格式 1.1、使用空格而不是制表符Tab 不要在工程里使用 Tab 键,使用空格来进行缩进。...

  • Vue 中 error处理:no-mixed-spaces-an

    禁止使用 空格 和 tab 混合缩进;大多数代码约定要求使用空格或 tab 进行缩进。因此,一行代码同时混有 ta...

网友评论

      本文标题:程序员编码首行缩进使用Tab键好还是空格好?

      本文链接:https://www.haomeiwen.com/subject/enzjdttx.html