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

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

tab 缩进

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

空格缩进

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

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

7285 次点击
所在节点    问与答
70 条回复
casparchen
2020-08-18 12:25:49 +08:00
等宽字体(英语:Monospaced Font )是指字符宽度相同的电脑字体。
lovecy
2020-08-18 12:26:23 +08:00
@cmdOptionKana 啥行业标准,我咋没听说过。。。。,那为啥热门编辑器默认字体都不是等宽字体

@ysoserious 不是我不想统一,如果大家都用空格,我也用了,我们老代码是 tab,然后有些同事用 JetBrains,有些用 sublime,默认的缩进是空格,我们没人规定这个,所以想看看大家都是咋样的。。。
MyPassWordis
2020-08-18 12:27:29 +08:00
“而且显示的时候格式很好,不同设备展示差不多”
这就没法聊了
lovecy
2020-08-18 12:28:12 +08:00
@ispinfx
@icyalala
@casparchen
原来你们说的是英文等宽,我以为这个是默认了,我说的是中英文等宽
passerbytiny
2020-08-18 12:30:00 +08:00
看楼主对我的回复,大家散了吧。
morethansean
2020-08-18 12:30:08 +08:00
楼主你列的几个全是等宽字体,现代编辑器的默认字体估计你找不出不是等宽的。我感觉你可能有中文,然后用的系统没有正确的等宽中文 fallback. 你可以在最后再加一个等宽中文,比如宋体。
lovecy
2020-08-18 12:33:03 +08:00
@passerbytiny 我已经说了我的例子,你可以自己去编辑器试试这两个是不是显示宽度一直,你觉得不对就给出反例或者指出问题,请不要阴阳怪气
whileFalse
2020-08-18 12:35:04 +08:00
Tab 的唯一问题是,难以阻止协作者甚至是你自己混用 Tab 和空格,然后在不同的环境中看起来不一样。
这点 yaml 做的就挺好,直接不允许使用 Tab 。
rockyou12
2020-08-18 12:37:47 +08:00
不要和杠精辩论,只会浪费时间,大家散了吧
Chingim
2020-08-18 12:38:56 +08:00
肯定空格呀

tab 的宽度在不同的环境下是会变的,恶心得一批
fishCatcher
2020-08-18 12:57:02 +08:00
所以 gofmt 直接一律 tab
newtype0092
2020-08-18 13:03:23 +08:00
看了 24#的回复 “原来你们说的是英文等宽,我以为这个是默认了,我说的是中英文等宽”
嗯。。。
真相只有一个:LZ 写的是易语言代码!!!
ipadpro4k
2020-08-18 13:04:27 +08:00
散了散了,奇葩
BrettD
2020-08-18 13:19:15 +08:00
大家散了吧,我都看不懂楼主在说啥
Shook
2020-08-18 13:22:49 +08:00
我喜欢在初始化变量时,把等号对齐。
有时会需要用空格手动对齐一下,如果用 tab 而不是空格的话就会造成混用了,所以我都是用空格的。
la9998372
2020-08-18 13:23:59 +08:00
举个例子 C 语言注释
一行代码,后面跟着 //注释,如果代码和注释之间用 tab,换编译器的时候,由于 tab 在每个编译器下的空格数不一致,很容易就会出现,你在某个编辑器上发现注释是对齐的,但是另外一个编辑器就不对齐了。虽然现在大部分编辑器都是 tab=4 空格,但是有时候也会出现不对齐的情况。
如果这时候用空格,一定是没问题的。
Mutoo
2020-08-18 13:26:33 +08:00
tab 调成 2 缩进或 4 缩进时非常容易与空格混淆,对编辑器兼容性也极差。相比之下空格的兼容性更好。

另外 editorconfig / prettier 也如此好用,根本不需要手工缩进,硬盘空间如此便宜,也无须纠结文件大小。
si
2020-08-18 13:46:35 +08:00
@newtype0092 易语言只支持空格,不支持 tab,不会有这个问题,更谈不上喜欢用 tab 了😁
jackmod
2020-08-18 13:50:56 +08:00
tab 和空格我都用。很多格式化工具支持自动转换。保证不混用即可。
shijingshijing
2020-08-18 14:10:08 +08:00
特别讨厌 Python 这种行尾不加休止符+用缩进来分隔代码的风格,C,C++,Java 的花括号+分号结尾很好的解决了格式问题,而且即使在极端情况下,所有代码被压缩到一行,还能够快速格式化成原来的样子。

Python 这种就是解决一个不存在的问题,敲四个空格+后期可能出现问题 vs 每行分号结尾,真不明白到底是谁战胜了谁。

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

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

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

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

© 2021 V2EX