关于程式码中的多层嵌套的函数结尾大小括号,大家是否习惯分开?

2016-08-07 16:39:55 +08:00
 haroldwu

多层嵌套时的一个疑惑。网路上的 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
        )
      }
    }
  }
}
3891 次点击
所在节点    Coding
15 条回复
jeremaihloo
2016-08-07 16:58:34 +08:00
台湾的朋友你好( ^_^)/
kn007
2016-08-07 17:10:36 +08:00
一般不会混啊,有 sublime 或 notepad++ 有折叠区间,看一眼就知道是从哪到哪,太长,随便点个起始或结束括号,就可以看到结束或起始括号了。
hxtheone
2016-08-07 17:16:35 +08:00
个人表示必须分开, 前后括号不换行没缩进完全不知道代码是写在哪个作用域里

所以写了一段时间 Clojure 简直痛不欲生
bdbai
2016-08-07 17:32:21 +08:00
这个节点不太对啊。
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
}
}
}
haroldwu
2016-08-07 18:14:17 +08:00
@bdbai 啊我不确定是放哪个节点比较好,毕竟我讨论的不是某种特定的语言 :P
haroldwu
2016-08-07 18:19:42 +08:00
@hxtheone 其实我蛮喜欢的,搭配上自动缩排跟 paredit 其实还好 :P 所以用这些强制分开的反而不习惯
@jeremaihloo 嗨!你好!(为什么知道我来自哪里呢?还是我的用语很台式 Orz )
@zclzhangcl 我懂了 等于是直接 在 if 就决定掉最外层要不要继续或跳过,然后才继续,代码块不要放在 if 内
jeremaihloo
2016-08-07 18:42:24 +08:00
程式,程式码,网路,很明显呀~。~哈哈
haroldwu
2016-08-07 19:48:50 +08:00
@jeremaihloo 哈哈,我都忽略了 :P
bdbai
2016-08-07 23:03:57 +08:00
@haroldwu 这个 Coding 是大陆一个项目(专案?)托管网站,功能超棒的。 https://coding.net
你可以发到程序员节点 /go/programmer :)
jimages
2016-08-07 23:47:58 +08:00
好奇台湾不是用繁体字吗?
haroldwu
2016-08-08 03:57:50 +08:00
@bdbai 原來是那個 Coding ,我誤解了...
@jimages 用的 RIME 2333 想說來這邊發還是低調一點用簡體字啦
lxrmido
2016-08-08 09:08:20 +08:00
分开看起来比较清晰
MinonHeart
2016-08-08 09:35:54 +08:00
每種語言都有自己的風格,個人傾向與使用 IDE 格式化的風格。 JS 是分行寫
haroldwu
2016-08-09 13:09:32 +08:00
@MinonHeart 這個建議不錯!

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

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

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

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

© 2021 V2EX