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

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

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

25242 次点击
所在节点    程序员
102 条回复
lincanbin
2015-06-03 21:21:38 +08:00
http://www.94cb.com/Pythonic-PHP-Code-Formatter/





好处还是蛮多的诶,你不觉得这样看起来清爽很多么?
zhangjk1993
2015-06-03 21:48:17 +08:00
看着爽
lilydjwg
2015-06-03 22:32:57 +08:00
@qw7692336 嗯,那的确又省了一个键。我两种都用,好像是取决于语种和上下文……
gateswong
2015-06-03 22:40:29 +08:00
一开始我写代码的笔记本是1366x768的分辨率,然后标题栏占一点儿高度,菜单栏占一点儿高度,工具栏占一点儿高度,标签栏占一点儿高度,下面调试或者什么乱七八糟的信息栏占一点儿高度。最后编辑器可视区域也就10行多一点儿。

所以坚决的从换行党切换到不换行党了……

不过有例外的情况,就是C#。Visual Studio 似乎是强制C#换行花括号的,所以直接就顺着VS来了。


@lincanbin 你给的这个图片有种说不出的怪异,可能是有点儿python的感觉了吧。

@znoodl 这种情况都是手滑多写了个分号吧?

@qw7692336 我觉得加了空格蛮舒服的,只有一种情况不加空格:
b = a[i+1];
就比
b = a[i + 1];
要好看一点儿

@caoyue 虽然没细学过Javascript不过感觉这个坑是因为js语句可以有也可以没有分号是吧?
winoros
2015-06-03 22:41:15 +08:00
两种风格,感觉主要是个人习惯的问题吧
现在是右括号不换行,个人原因是感觉看起来顺眼好多,而且,换行之后造成的无意义空间多了好多
xgdyhaiyang
2015-06-03 22:52:07 +08:00
@lincanbin 还是写Python吧
Felldeadbird
2015-06-03 23:30:32 +08:00
contol + shitf + f:什么格式对我来说重要吗?
wqlfighter
2015-06-03 23:39:42 +08:00
谷歌有C++一套开发格式,目前感觉的确挺舒服
DejaVud
2015-06-03 23:51:41 +08:00
美观.

认为另起一行美观是因为对称,但是我认为我的审美更符合以下第2种:
1)花括号另起一行
++++++
+
+++
+++++
++++++
+++++
+++
+

2)花括号跟在后面
++++++
+++++
++++
+++
++
+
lilydjwg
2015-06-04 00:05:31 +08:00
@Felldeadbird 你可以把所有代码都写到一行试试 :-D
bdbai
2015-06-04 00:23:41 +08:00
@forrestchang Visual Studio哭瞎在厕所
FrankHB
2015-06-04 04:48:02 +08:00
想要省空间省回车的,干脆就用没括号的算了。(虽然一写在纸上换页然后就容易呵呵了。)
要是不爽这坨,用Lisp风格不就行了,这不更节约行数么。
说到底凭什么}非得吊车尾而{就不行呢?完全没理性的理由,只是习惯罢了。基于}经常占据了单独的行这个现实,说节约行数是主要目的的,我很怀疑有没有花时间想过这里的问题。
另外,K&R也不是照搬的理由。注意一下K&R C函数体内部的块的{}和其它{}还不都一样,显然并不是任何时候都把{前的换行删除。另外值得一提的是,函数体层次上和内部块的{}风格不一样和函数体必须是复合语句这些artifacts现在看来都是K&R C旧参数声明语法的遗毒。
FrankHB
2015-06-04 04:56:57 +08:00
@lilydjwg 这种错误怎么看也没比自作主张脑补;的语言来得混乱。既然后者都能接受,前者又有啥大不了的呢。
真不爽的怕错的,直接禁止然后源码里正则暴搜干掉所有\);(?=\r?$)得了。这种检查还方便自动化实现。

倒三角形美观?完全不明觉厉。先看长的代码再看短的代码心情会好么。至少汉字的文章按这种构造写看起来挺奇怪的。
df4VW
2015-06-04 06:15:46 +08:00
不会有的时候merge中间插了别的东西这个函数就崩了
lilydjwg
2015-06-04 07:48:13 +08:00
@FrankHB } 放上一行的话添加、移动代码不便的。但是 { 放在 if / for / while 行没有这个问题,反正我是不用 if (x) y; 这种不用 { } 的单行 if 块,往里边添加东西太麻烦。

我并不接受自己添加 ; 的语言。写 JavaScript 都是显式写 ; 的。我说了,「);$」这个组合是非常常见的,比如 a = func(); 你检查下一行是不是单一个 { 也没用,因为有时候 { } 不会跟着 if / for / while 出现,只是用来划分作用域的。

我也不觉得倒三角美观,还嘲笑过 Lua 里有很多很大的由 end 构成斜边的倒三角呢。但是也没觉得有什么问题。GNU 那种风格才会觉得有问题。
kn007
2015-06-04 08:21:05 +08:00
一般
if ()
exit

if(){
...
exit
}

习惯问题吧,如果没有大括号,就觉得下句就结束了(习惯问题)
dslwind
2015-06-04 08:46:07 +08:00
Python党笑而不语
exoticknight
2015-06-04 08:50:14 +08:00
能够用格式工具统一的问题就不要自寻烦恼
rayyang88
2015-06-04 09:30:25 +08:00
因为Go不这样写会报错编译不过。。
Hyperion
2015-06-04 09:37:57 +08:00
坚决换行,我就喜欢...

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

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

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

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

© 2021 V2EX