多层嵌套时的一个疑惑。网路上的 js 的话多见分开,一个括号(});
)一行;在 Lisp 系语言则好像会把 ) 聚集在一起变成 )))
。想问问大家其他语言习惯一般为何?为什么呢?
我平常主要写的是 R 语言,所以用 R 来示范我的想法。(我有找了一下 Google 的 R Style Guide ,内并无特别介绍)。如果有括号自动上色,是不是就不需要这样一个一行了?
网路上另外有看到说法是:多于五层的嵌套代表程式有问题,最好重构。
for (x in y) {
if (x%in% list_g) {
for (m in q) {
for (n in p) {
# some code here
)
}
}
}
}
1
jeremaihloo 2016-08-07 16:58:34 +08:00 via Android
台湾的朋友你好( ^_^)/
|
2
kn007 2016-08-07 17:10:36 +08:00
一般不会混啊,有 sublime 或 notepad++ 有折叠区间,看一眼就知道是从哪到哪,太长,随便点个起始或结束括号,就可以看到结束或起始括号了。
|
3
hxtheone 2016-08-07 17:16:35 +08:00
个人表示必须分开, 前后括号不换行没缩进完全不知道代码是写在哪个作用域里
所以写了一段时间 Clojure 简直痛不欲生 |
4
bdbai 2016-08-07 17:32:21 +08:00 via Android
这个节点不太对啊。
|
5
zclzhangcl 2016-08-07 17:53:18 +08:00
欢迎台湾的朋友~
我是 java 语言的,最好还是将括号分开。虽然 ide 已经有了单击括号自动变色功能。 我平时的习惯是,嵌套尽量少于三层,多余三层我都会想办法处理一下。譬如你的代码,我会改成这样: for (x in y) { if (!(x%in% list_g) { continue; } for (m in q) { for (n in p) { //TODO } } } |
7
haroldwu OP @hxtheone 其实我蛮喜欢的,搭配上自动缩排跟 paredit 其实还好 :P 所以用这些强制分开的反而不习惯
@jeremaihloo 嗨!你好!(为什么知道我来自哪里呢?还是我的用语很台式 Orz ) @zclzhangcl 我懂了 等于是直接 在 if 就决定掉最外层要不要继续或跳过,然后才继续,代码块不要放在 if 内 |
8
jeremaihloo 2016-08-07 18:42:24 +08:00 via Android
程式,程式码,网路,很明显呀~。~哈哈
|
9
haroldwu OP @jeremaihloo 哈哈,我都忽略了 :P
|
10
bdbai 2016-08-07 23:03:57 +08:00 via Android 1
|
11
jimages 2016-08-07 23:47:58 +08:00 via Android
好奇台湾不是用繁体字吗?
|
12
haroldwu OP |
13
lxrmido 2016-08-08 09:08:20 +08:00
分开看起来比较清晰
|
14
MinonHeart 2016-08-08 09:35:54 +08:00
每種語言都有自己的風格,個人傾向與使用 IDE 格式化的風格。 JS 是分行寫
|
15
haroldwu OP @MinonHeart 這個建議不錯!
|