写代码花括号不另起一行的好处是什么

2015-06-03 15:24:38 +08:00
 professorz

另起一行的好处:
没有编辑器提示的情况下仍然能轻松的看出内外关系;
对称,美观。

25245 次点击
所在节点    程序员
102 条回复
yibin001
2015-06-04 09:46:08 +08:00
golang就是这么要求的。。。。不这样写报错。
pljhonglu
2015-06-04 09:49:53 +08:00
节省垂直空间,代码到处是空行,阅读的时候狂滚鼠标滚轮,而且一屏还看不了多少有用的代码,多抓狂啊。

现在的编辑器本身就带括号匹配,很容易就找到 block 了
lvfujun
2015-06-04 09:56:32 +08:00
@MrGba2z 你考虑过后面维护你代码的童鞋么.
原型代码为了容易DEBUG和易读性都是换行写的.到了代码封装上线的时候才会用工具去掉换行.你们的professor和大牛这么写......恩我不多说......很多牛逼的人都是不考虑别人的.
lvfujun
2015-06-04 09:56:47 +08:00
@lincanbin 你比较适合用Py
babyname
2015-06-04 09:58:18 +08:00
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
节约浏览空间和纸张
willbin
2015-06-04 10:02:12 +08:00
首先, 必须有括号(没啥好处, 但不这样做有坏处)
第二,尽量换一行(好处:想把判断条件忽略时, 直接把if行注释就行, 如果括号在同一行就呵呵了)
iwinux
2015-06-04 10:05:04 +08:00
另起一行太丑
DingSoung
2015-06-04 11:23:16 +08:00
换行太丑 +1
ivenvd
2015-06-04 12:06:49 +08:00
1. 我总是有编辑器提示。
2. 另起一行太丑。
ikaros
2015-06-04 12:13:50 +08:00
golang强制要求不换行,而且看起来挺美观的,就一直这样写了
chisj
2015-06-04 12:16:36 +08:00
与kernel保持一致风格,习惯了而已,并没有什么好处。就像要另起一行又有什么好处?
101
2015-06-04 12:31:09 +08:00
所以说不要再搞党争了,一命呜呼啥也没用
littleshy
2015-06-04 12:55:32 +08:00
我随便,只是vs帮我格式化好了。
wizardoz
2015-06-04 13:28:30 +08:00
@21grams 其实我永远觉得显示器不够大。原来想把显示器竖起来用,后来发现竖起来分屏用太窄了。
FrankHB
2015-06-04 20:25:31 +08:00
@lilydjwg 好吧,漏了,\)的前面得是(for|while|if).+。我也不用单行块也不接受自己乱加;,所以没这类问题。
另外-Wall应该还是基于语义的,如果循环条件带副作用可能靠不住。

倒三角的评论应该分开回复……
GNU风格的最明显问题在于,它让制表符宽度一旦不是特定的一些预设值看起来就很糟糕,还不如都空格算了。

@chisj 都是习惯没错,但硬要说成一回事,“并没有什么好处”,不符合事实。
另起一行在习惯以外的好处,上面至少已经有人说了两个:人肉匹配块的边界更快;临时注释if等方便。(不管时常进行这些操作是不是习惯,对习惯或不习惯的用户来说效果应该都是类似的。)
而不另起一行的好处,也有提到了两个:节约行数;避免手贱错误地插入分号之类。
但是我已经指出过后者的这些理由很不一样:节约行数很不彻底,明显不如}}}};即使能减少一些具有良好编码习惯的用户很少发生的输入错误,也远不如另外进行语法检查靠谱。
所以我仍然好奇习惯以外到底有什么决定性优点。
vjnjc
2015-06-04 20:35:13 +08:00
主要就是减少代码行数,少一行{就多一行有效代码在视野里。
nilbot
2015-06-04 22:48:29 +08:00
原来B语言有出现过一个设计,不用分号当句子(statement)结尾,那么从语法上来说花括号为了不产生歧义就不能另起一行了,后来C语言并没有坚持这种设计。实际上Ken后来还是觉得原来的设计好,这就是为什么Go强迫花括号不能另起一行:分号没有了。
alphonsez
2015-06-05 01:04:08 +08:00
写C#就另起一行,写Java就不另起一行,写C++就看最近用的是C#还是Java
lzjun
2015-06-05 01:11:16 +08:00
MrGba2z
2015-06-05 01:11:29 +08:00
@lvfujun 当初我纠结的时候特地看了看Google的C++规范 他们就是不换行的

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

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

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

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

© 2021 V2EX