另起一行的好处:
没有编辑器提示的情况下仍然能轻松的看出内外关系;
对称,美观。
1
w99wen 2015-06-03 15:26:17 +08:00
不用打回车换行了
不然多按好几个键。 我比较懒。 |
2
scarlex 2015-06-03 15:27:06 +08:00
习惯而已
|
3
binjoo 2015-06-03 15:28:06 +08:00
基督教的好处是什么?佛教的好处是什么?
是否另起一行只是教派不同而已。。。 |
4
hooluupog 2015-06-03 15:28:58 +08:00
晕,开撕了,我写代码去。。。
|
5
omi4399 2015-06-03 15:29:56 +08:00
这么写高兴。
|
6
czheo 2015-06-03 15:32:12 +08:00 via iPhone
节约行数
|
7
FrankFang128 2015-06-03 15:32:27 +08:00
你说的这个好处根本就不是特有的好吗
|
8
laoyur 2015-06-03 15:32:31 +08:00 1
以前我也是另起一行党,也是跟你同样的观点。
但我现在转变成不另起一行了,熟悉之后也还是能比较轻松地看出内外关系,真的,所以那条理由其实不成立。 而不另起一行的好处是,可以有效减少行数,同样高度内显示的内容更多,更容易把控代码前后关系 |
9
maikcn 2015-06-03 15:35:51 +08:00 1
人生苦短,我用Python
|
10
MrGba2z 2015-06-03 15:40:44 +08:00
我一开始也是换行的
后来看身边的教授, 大牛, 以及操作系统等代码都是不换行 就跟着学了.. 后来发现行数少带来的优点也不少, 而且习惯后不换行的情况下也能分清block |
11
hxtheone 2015-06-03 15:55:00 +08:00
大括号不换行通过行首的缩进也能很清楚的看出层级啊
话说看代码的内外关系还需要编辑器提示? |
12
TuxcraFt 2015-06-03 16:03:43 +08:00
不过还是比 begin 和 end 要好
|
13
Wangxf 2015-06-03 16:24:54 +08:00
最大的好处就是不会在细节上面花太多时间,反正很明显的看到区块
|
14
fo2w 2015-06-03 16:26:39 +08:00
换了十几年行, 现在不换行了, 没别的, 年纪大了, 眼神不好, 换行了一眼望去代码跟撒欢儿似得零零碎碎, 看得头大
|
15
magicdawn 2015-06-03 16:32:15 +08:00
写C#换行,写JS不换行,写golang 不是我自己说了算
|
16
blambin 2015-06-03 16:37:23 +08:00
|
17
Anybfans 2015-06-03 16:47:20 +08:00
突然想起我大python ~
|
18
timothyye 2015-06-03 16:48:56 +08:00
据说这个实际上程序员只有两种,一种是花括号换行的,一种是花括号不换行的……
|
19
tangooricha 2015-06-03 16:54:17 +08:00
@professorz 老板算工作量的时候,可以有效地给老板省钱啊!
|
20
jokester 2015-06-03 16:55:22 +08:00
no tell u
|
21
mozartgho 2015-06-03 16:56:28 +08:00
自己习惯了就好,我是当年自学C语言,用的K&R的书。
|
22
sketch33 2015-06-03 17:00:28 +08:00
同意ls的:而不另起一行的好处是,可以有效减少行数,同样高度内显示的内容更多
|
23
forrestchang 2015-06-03 17:05:24 +08:00
如果阅读过《代码大全》的人肯定知道,大多数人另起一行的括号写法是错误的。在正确写法的前提下,另起一行和不另起一行看个人习惯了。
协同开发的时候应当遵循统一的代码规范。 |
24
xifangczy 2015-06-03 17:05:47 +08:00
python 哭晕.
|
25
mcfog 2015-06-03 17:06:38 +08:00
宇宙最好的语言表示,class interface和trait的花括号换行,控制结构if while switch for foreach的不换行~
|
26
SuujonH 2015-06-03 17:08:16 +08:00
增加键盘回车键寿命,减少地球的能源使用,降低了武器的制造成本,为了对抗隔壁星球的老王打下坚实的基础
|
27
lingo233 2015-06-03 17:16:17 +08:00 via Android
没啥,在世界之初有两种c一种是the c一种是谭浩强c所以括号只是个历史遗留问题
|
28
timi 2015-06-03 17:20:20 +08:00
以前都是另起一行,奈何公司规范要求同行。。。
目前感觉,如果代码行数少的话,同行舒服,代码行数多的话,另起一行看的舒服(能通过缩进找到另一个括号,我相信人眼对括号的匹配的优先级要高于对括号+字母的优先级的。。) |
29
caoyue 2015-06-03 17:40:22 +08:00
先看语言和项目代码规范吧,然后就看个人喜好了
不过学 js 的时候遇到过这样的坑=-= return { x:y } |
30
jun4rui 2015-06-03 17:41:39 +08:00
少按一下键就是优点了,你看javascript这种语言连冒号都建议用''单引号而不用"",就是因为可以省掉左手去按SHIFT……
|
31
jadetang 2015-06-03 17:46:49 +08:00
如果公司是按照代码行数算工作量的话,另起一行当然好些,蚊子腿也是肉
|
32
popu111 2015-06-03 17:49:25 +08:00
我就是舒服。。。有的人花括号不光换行还再来一下,看的时候也是醉了。。。
|
33
iyangyuan 2015-06-03 17:51:15 +08:00 via iPhone
习惯
|
34
vietor 2015-06-03 17:55:24 +08:00
省了一个空行,看起来更紧凑。
此外,也很美观呢,也可以看出层次关系呢,毕竟缩紧很明显、下括号也是存在的。 也就说你提的两个理由,没一个站住脚。 |
35
otakustay 2015-06-03 17:58:50 +08:00
不用花括号都能看内外关系了(python开发者如是说),换不换行和内外关系就没啥关系了- -
|
36
yellowV2ex 2015-06-03 17:59:54 +08:00 1
尿尿不抖几下的好处是什么?
|
38
bingu 2015-06-03 18:01:17 +08:00
一直没搞懂为什么要另起一行放一个花括号
|
39
1023400273 2015-06-03 18:02:47 +08:00
强迫症表示不换行受不了
|
40
xlrtx 2015-06-03 18:08:37 +08:00
@tangooricha 应该压缩下算下, 按照信息熵来开工资..
|
41
JeremyWang 2015-06-03 18:14:56 +08:00
@xlrtx 厉害~~
|
42
Gonster 2015-06-03 18:18:20 +08:00 via iPhone
看到帖子必须吐槽一下javascript自动加分号:P
|
43
linux40 2015-06-03 18:19:40 +08:00
支持楼主。。。
|
44
kxxoling 2015-06-03 18:36:50 +08:00
>>> from __future__ import braces
File "<ipython-input-8-2aebb3fc8ecf>", line 1 from __future__ import braces SyntaxError: not a chance |
46
21grams 2015-06-03 18:56:57 +08:00
其实没啥好处,就是以前显示器屏幕小,可以省一行的空间。现在都是高分屏了,没实际意义了,只有传统意义。
|
47
xenme 2015-06-03 19:04:20 +08:00
像我这样,一会儿换行,一会儿不换行的怎么破。
|
48
lilydjwg 2015-06-03 19:13:07 +08:00
1. 节约垂直空间。有人声称当函数超过一屏时 bug 数会加倍呢。
2. 防止意外,如一不小心写了这种 if(this && that); { do this; } 你自己盯十遍也不一定能发现。但是如果是这样: if(this && that); { 你就会发现 ); { 这里很不和谐(因为这种字符组合很罕见,而 ); 这个很常见)。 当然这些如果开 -Wall 的话编译器会提示你的。 3. 没有编辑器提示的情况下仍然能轻松的看出内外关系。只要从 } 垂直向上找,遇到字符就说明到达此区块开始了(当然还得跳过宏)。而分开写,开始处占了俩逻辑行,感觉不好。反正我是这么觉得的,也许是因为不换行的代码见太多了。 |
50
zhs227 2015-06-03 19:15:08 +08:00
这是个哲学问题,最早的部分规范推荐是大括号不重起一行的。
看起来其实也没有那么不方便。 +-----/ ------/ -----/ ----/ ---/ --/ -/ } 不重启一行的阅读方法是,你顺着括号收网上看,看到的第一个字母就是大括号开始的那一行。看上去像个倒三角形的样子。 习惯了都很好。可以节省版面。 |
51
zyxfsky 2015-06-03 19:23:05 +08:00
自从改Python后,就和大括号88了
|
52
qw7692336 2015-06-03 19:32:10 +08:00
我喜欢紧凑的代码,行数太多、太长的代码不好看。我不喜欢加多余的空格。很多人喜欢在加号"+"的前后分别加上空格,我就不喜欢这么做,松散的代码不好看。
|
55
znoodl 2015-06-03 20:15:34 +08:00
一个经常遇到的bug:
while(i == 1); { } 上面如果括号内为真,大括号的内容不会被执行 while(i == 1){ } |
56
fulvaz 2015-06-03 20:47:10 +08:00
额...又是这个题目啊
------------- void doSomeThing(para...) { int a; function(); } 函数名和函数体应该是有关联的,在你读代码的时候,不空行可以显示出这种关联 另外这样少占一行,还是方便阅读 另外,python没有{}, 更加好,缩进已经能够反映这种关联关系 --- 对我就是跟我老板学的 |
57
flowfire 2015-06-03 20:59:39 +08:00
可以有效防止强迫症患者阅读你的代码。。。
|
58
feiyunruyue 2015-06-03 21:06:14 +08:00
go语言要求必须这么搞
|
59
BB9z 2015-06-03 21:09:33 +08:00
不换行党,理由:大部分编辑器折叠后的样式更好。
|
60
falcon05 2015-06-03 21:10:34 +08:00 via iPhone
习惯使然
|
61
lincanbin 2015-06-03 21:21:38 +08:00
|
62
zhangjk1993 2015-06-03 21:48:17 +08:00
看着爽
|
64
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语句可以有也可以没有分号是吧? |
65
winoros 2015-06-03 22:41:15 +08:00
两种风格,感觉主要是个人习惯的问题吧
现在是右括号不换行,个人原因是感觉看起来顺眼好多,而且,换行之后造成的无意义空间多了好多 |
66
xgdyhaiyang 2015-06-03 22:52:07 +08:00
@lincanbin 还是写Python吧
|
67
Felldeadbird 2015-06-03 23:30:32 +08:00
contol + shitf + f:什么格式对我来说重要吗?
|
68
wqlfighter 2015-06-03 23:39:42 +08:00
谷歌有C++一套开发格式,目前感觉的确挺舒服
|
69
DejaVud 2015-06-03 23:51:41 +08:00
美观.
认为另起一行美观是因为对称,但是我认为我的审美更符合以下第2种: 1)花括号另起一行 ++++++ + +++ +++++ ++++++ +++++ +++ + 2)花括号跟在后面 ++++++ +++++ ++++ +++ ++ + |
70
lilydjwg 2015-06-04 00:05:31 +08:00
@Felldeadbird 你可以把所有代码都写到一行试试 :-D
|
71
bdbai 2015-06-04 00:23:41 +08:00 via iPhone
@forrestchang Visual Studio哭瞎在厕所
|
72
FrankHB 2015-06-04 04:48:02 +08:00
想要省空间省回车的,干脆就用没括号的算了。(虽然一写在纸上换页然后就容易呵呵了。)
要是不爽这坨,用Lisp风格不就行了,这不更节约行数么。 说到底凭什么}非得吊车尾而{就不行呢?完全没理性的理由,只是习惯罢了。基于}经常占据了单独的行这个现实,说节约行数是主要目的的,我很怀疑有没有花时间想过这里的问题。 另外,K&R也不是照搬的理由。注意一下K&R C函数体内部的块的{}和其它{}还不都一样,显然并不是任何时候都把{前的换行删除。另外值得一提的是,函数体层次上和内部块的{}风格不一样和函数体必须是复合语句这些artifacts现在看来都是K&R C旧参数声明语法的遗毒。 |
73
FrankHB 2015-06-04 04:56:57 +08:00
@lilydjwg 这种错误怎么看也没比自作主张脑补;的语言来得混乱。既然后者都能接受,前者又有啥大不了的呢。
真不爽的怕错的,直接禁止然后源码里正则暴搜干掉所有\);(?=\r?$)得了。这种检查还方便自动化实现。 倒三角形美观?完全不明觉厉。先看长的代码再看短的代码心情会好么。至少汉字的文章按这种构造写看起来挺奇怪的。 |
74
df4VW 2015-06-04 06:15:46 +08:00
不会有的时候merge中间插了别的东西这个函数就崩了
|
75
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 那种风格才会觉得有问题。 |
76
kn007 2015-06-04 08:21:05 +08:00
一般
if () exit if(){ ... exit } 习惯问题吧,如果没有大括号,就觉得下句就结束了(习惯问题) |
77
dslwind 2015-06-04 08:46:07 +08:00 via Android
Python党笑而不语
|
78
exoticknight 2015-06-04 08:50:14 +08:00
能够用格式工具统一的问题就不要自寻烦恼
|
79
rayyang88 2015-06-04 09:30:25 +08:00
因为Go不这样写会报错编译不过。。
|
80
Hyperion 2015-06-04 09:37:57 +08:00 via Android
坚决换行,我就喜欢...
|
81
yibin001 2015-06-04 09:46:08 +08:00
golang就是这么要求的。。。。不这样写报错。
|
82
pljhonglu 2015-06-04 09:49:53 +08:00
节省垂直空间,代码到处是空行,阅读的时候狂滚鼠标滚轮,而且一屏还看不了多少有用的代码,多抓狂啊。
现在的编辑器本身就带括号匹配,很容易就找到 block 了 |
83
lvfujun 2015-06-04 09:56:32 +08:00
@MrGba2z 你考虑过后面维护你代码的童鞋么.
原型代码为了容易DEBUG和易读性都是换行写的.到了代码封装上线的时候才会用工具去掉换行.你们的professor和大牛这么写......恩我不多说......很多牛逼的人都是不考虑别人的. |
85
babyname 2015-06-04 09:58:18 +08:00
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
节约浏览空间和纸张 |
86
willbin 2015-06-04 10:02:12 +08:00
首先, 必须有括号(没啥好处, 但不这样做有坏处)
第二,尽量换一行(好处:想把判断条件忽略时, 直接把if行注释就行, 如果括号在同一行就呵呵了) |
87
iwinux 2015-06-04 10:05:04 +08:00
另起一行太丑
|
88
DingSoung 2015-06-04 11:23:16 +08:00
换行太丑 +1
|
89
ivenvd 2015-06-04 12:06:49 +08:00
1. 我总是有编辑器提示。
2. 另起一行太丑。 |
90
ikaros 2015-06-04 12:13:50 +08:00
golang强制要求不换行,而且看起来挺美观的,就一直这样写了
|
91
chisj 2015-06-04 12:16:36 +08:00
与kernel保持一致风格,习惯了而已,并没有什么好处。就像要另起一行又有什么好处?
|
92
101 2015-06-04 12:31:09 +08:00
所以说不要再搞党争了,一命呜呼啥也没用
|
93
littleshy 2015-06-04 12:55:32 +08:00
我随便,只是vs帮我格式化好了。
|
95
FrankHB 2015-06-04 20:25:31 +08:00
@lilydjwg 好吧,漏了,\)的前面得是(for|while|if).+。我也不用单行块也不接受自己乱加;,所以没这类问题。
另外-Wall应该还是基于语义的,如果循环条件带副作用可能靠不住。 倒三角的评论应该分开回复…… GNU风格的最明显问题在于,它让制表符宽度一旦不是特定的一些预设值看起来就很糟糕,还不如都空格算了。 @chisj 都是习惯没错,但硬要说成一回事,“并没有什么好处”,不符合事实。 另起一行在习惯以外的好处,上面至少已经有人说了两个:人肉匹配块的边界更快;临时注释if等方便。(不管时常进行这些操作是不是习惯,对习惯或不习惯的用户来说效果应该都是类似的。) 而不另起一行的好处,也有提到了两个:节约行数;避免手贱错误地插入分号之类。 但是我已经指出过后者的这些理由很不一样:节约行数很不彻底,明显不如}}}};即使能减少一些具有良好编码习惯的用户很少发生的输入错误,也远不如另外进行语法检查靠谱。 所以我仍然好奇习惯以外到底有什么决定性优点。 |
96
vjnjc 2015-06-04 20:35:13 +08:00
主要就是减少代码行数,少一行{就多一行有效代码在视野里。
|
97
nilbot 2015-06-04 22:48:29 +08:00 1
原来B语言有出现过一个设计,不用分号当句子(statement)结尾,那么从语法上来说花括号为了不产生歧义就不能另起一行了,后来C语言并没有坚持这种设计。实际上Ken后来还是觉得原来的设计好,这就是为什么Go强迫花括号不能另起一行:分号没有了。
|
98
alphonsez 2015-06-05 01:04:08 +08:00 1
写C#就另起一行,写Java就不另起一行,写C++就看最近用的是C#还是Java
|
99
lzjun 2015-06-05 01:11:16 +08:00
|