多层嵌套时的一个疑惑。网路上的 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
        )
      }
    }
  }
}
|  |      1jeremaihloo      2016-08-07 16:58:34 +08:00 via Android 台湾的朋友你好( ^_^)/ | 
|  |      2kn007      2016-08-07 17:10:36 +08:00 一般不会混啊,有 sublime 或 notepad++ 有折叠区间,看一眼就知道是从哪到哪,太长,随便点个起始或结束括号,就可以看到结束或起始括号了。 | 
|  |      3hxtheone      2016-08-07 17:16:35 +08:00 个人表示必须分开, 前后括号不换行没缩进完全不知道代码是写在哪个作用域里 所以写了一段时间 Clojure 简直痛不欲生 | 
|  |      4bdbai      2016-08-07 17:32:21 +08:00 via Android 这个节点不太对啊。 | 
|      5zclzhangcl      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 } } } | 
|  |      7haroldwu OP @hxtheone 其实我蛮喜欢的,搭配上自动缩排跟 paredit 其实还好 :P 所以用这些强制分开的反而不习惯 @jeremaihloo 嗨!你好!(为什么知道我来自哪里呢?还是我的用语很台式 Orz ) @zclzhangcl 我懂了 等于是直接 在 if 就决定掉最外层要不要继续或跳过,然后才继续,代码块不要放在 if 内 | 
|  |      8jeremaihloo      2016-08-07 18:42:24 +08:00 via Android 程式,程式码,网路,很明显呀~。~哈哈 | 
|  |      9haroldwu OP @jeremaihloo 哈哈,我都忽略了 :P | 
|  |      10bdbai      2016-08-07 23:03:57 +08:00 via Android  1 | 
|  |      11jimages      2016-08-07 23:47:58 +08:00 via Android 好奇台湾不是用繁体字吗? | 
|  |      12haroldwu OP | 
|  |      13lxrmido      2016-08-08 09:08:20 +08:00 分开看起来比较清晰 | 
|  |      14MinonHeart      2016-08-08 09:35:54 +08:00 每種語言都有自己的風格,個人傾向與使用 IDE 格式化的風格。 JS 是分行寫 | 
|  |      15haroldwu OP @MinonHeart 這個建議不錯! |