实在没想明白空格缩进优点在哪里

2020-08-18 11:42:31 +08:00
 lovecy

tab 缩进

字符数少,而且显示的时候格式很好,不同设备展示差不多,而且能兼容一些宽度变化比较小的字体。

空格缩进

字符多,字体一变整个代码格式都变了,还有无法与代码中有用的空格区分

其实我倒无所谓,只是我们部门也没规定这些,有些同事用空格,有些同事用 tab,搞得我强迫症犯了

7050 次点击
所在节点    问与答
70 条回复
BrettD
2020-08-18 11:45:35 +08:00
字体变了代码格式怎么可能会变呢?难道你用的不是等宽字体?
ayase252
2020-08-18 11:46:59 +08:00
tab 的显示宽度是不一致的
lovecy
2020-08-18 11:47:49 +08:00
@BrettD 现在各编辑器默认用的字体有几个是等宽字体的。。。
lovecy
2020-08-18 11:49:47 +08:00
@ayase252 tab 会在字符数量内尽量给你保持对齐,这个字符数量看你编辑器的设定
also24
2020-08-18 11:54:35 +08:00
@lovecy #3
不妨说一下你正在用的编辑器和字体是啥……
passerbytiny
2020-08-18 11:57:07 +08:00
请楼主先说一下你用的什么神仙编辑器,竟然还能(在同一个编辑器内)让 tab“尽量”对齐。
whenov
2020-08-18 11:57:16 +08:00
@lovecy 有几个不是等宽字体的...
levn
2020-08-18 11:59:02 +08:00
不混用的话其实用哪个都行
如果说有点区别的话,用空格更灵活,可以在不同地方使用不同的缩进数
cmdOptionKana
2020-08-18 11:59:36 +08:00
@lovecy 编程就用等宽字体,这是行业标准。
ysoserious
2020-08-18 11:59:58 +08:00
现在的编辑器不是都可以自动把 tab 转换为空格么, 又不需要你手动去一下下敲空格, 都能对齐有啥好纠结的, 保持团队统一不好么.
ripperdev
2020-08-18 12:03:46 +08:00
@passerbytiny Vim 就可以,JetBrains 家的设置下应该也可以
si
2020-08-18 12:06:35 +08:00
空格的宽度是固定的,输入 N 个空格就是 1 个空格的 N 倍宽度。
但 tab 在不同的编辑器显示的时候宽度是不同的,有些按一个字符宽度显示,有的按 8 个字符显示,差别太大了。
而且还会根据内容缩减宽度。和内容混合的时候,tab 的宽度会在 1 至 N 之间变化。
我如果要固定宽度的时候,用空格,如果要多行对齐就用 tab 。
所以我一般开头用空格对齐,中间用要对齐就用 tab,如果只是为了分隔就用空格。
lovecy
2020-08-18 12:10:00 +08:00
@passerbytiny 我惊了,`\t 空格\t`和`\t\t`难道不是同一个宽度?
@whenov sublime3 默认字体,不是等宽(具体默认是啥我没找到。),vscode 默认字体`Consolas, 'Courier New', monospace`,也不是等宽,我目前用的是`Casadia Code`,也不是等宽,等宽字体用过几个,感觉美观性确实差点
@also24 如上
icyalala
2020-08-18 12:12:42 +08:00
写代码有哪个编辑器默认不是等宽字体的,难不成你是用记事本或者 word 来写代码?
用空格缩进在哪里看都不会变,反而是 tab 显示空间会不一致。
ispinfx
2020-08-18 12:15:37 +08:00
`Consolas, 'Courier New', monospace`不是等宽???
icyalala
2020-08-18 12:16:20 +08:00
@lovecy Sublime 默认字体 Linux 是 Monospace,Windows 是 Consolas,macOS 是 Menlo Regular,这些都是等宽字体。Casadia Code 也是等宽字体。

除非你中英文混用,中文 fallback 到其他字体去了。
sosilver
2020-08-18 12:16:56 +08:00
@lovecy 惊了,这几个字体不全是等宽字体吗
Kr98
2020-08-18 12:18:18 +08:00
tab 显示宽度的不一致正是它优于空格的点

使用空格等于将你的缩进喜好强加于阅读者,比如你喜欢 2 缩进,阅读者就只能看 2 缩进的代码。如果阅读者喜欢 4 缩进,那就很难受了。

而 tab 完全不存在这个问题
watzds
2020-08-18 12:21:23 +08:00
我觉得 tab 每个人可以选择显示宽度比较好用,不过同时限制每行宽度的话,不知道是不是有问题
xmumiffy
2020-08-18 12:24:48 +08:00
我们就是用 tab 的,然后每个人可以自己在 IDE 上指定一个 tab 多少空格

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX