V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuhangch
V2EX  ›  程序员

感叹一下,花括号换不换行真能把人难受死哈哈

  •  
  •   yuhangch ·
    yuhangch · 2021-09-15 11:39:16 +08:00 · 6583 次点击
    这是一个创建于 925 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我一个朋友🐶:

    之前写 java,工作现在参与一个.net 后端,看到花括号换行真的浑身难受,前辈说他写 js 时候看花括号不换行也难受的要死

    之前看硅谷,看他们调侃 tab 还是空格的时候还感觉是夸张了

    习惯真的挺有意思的🤣🤣🤣

    44 条回复    2021-09-17 13:03:47 +08:00
    xylophone21
        1
    xylophone21  
       2021-09-15 11:40:47 +08:00
    用 golang 吧
    pixiaotiao
        2
    pixiaotiao  
       2021-09-15 11:41:52 +08:00 via Android
    前半个都不换行啊
    liuhuansir
        3
    liuhuansir  
       2021-09-15 11:44:16 +08:00
    @pixiaotiao Java 里是前面的括号不换行,c# c++ c 好像都是换行,都来写 Python 吧,没有括号,不用纠结了
    kiracyan
        4
    kiracyan  
       2021-09-15 11:45:56 +08:00
    我感觉都能接受
    360511404
        5
    360511404  
       2021-09-15 11:46:52 +08:00   ❤️ 8
    如果左花括弧换行了
    一屏显示的代码行数就少了
    更难以纵观全局
    感觉人生都因此浪费了几年{
    doge
    }
    NewYear
        6
    NewYear  
       2021-09-15 11:49:08 +08:00
    C#默认是左括号会换行,,,真心不喜欢,就像楼上说的,很浪费屏幕空间。
    pkookp8
        7
    pkookp8  
       2021-09-15 11:49:34 +08:00 via Android   ❤️ 12
    py,有游标卡尺就能写代码
    maplerecall
        8
    maplerecall  
       2021-09-15 11:55:01 +08:00 via Android   ❤️ 1
    同时写 C#和 Js,一个换行一个不换行,没啥不适。讲道理只要保证同项目中同语言一致就可以了…
    dingwen07
        9
    dingwen07  
       2021-09-15 11:55:12 +08:00 via iPhone
    你都快难受死了还不随手点一下格式化?
    AoEiuV020
        10
    AoEiuV020  
       2021-09-15 11:57:48 +08:00
    项目内保持一致就好,webrtc 中的 c++代码左花括号就统一不换行,一般 c++这是有换行的吧,
    WoodenTea
        11
    WoodenTea  
       2021-09-15 12:33:39 +08:00
    多尝试写不同的语言,估计就觉得都好看了
    raaaaaar
        12
    raaaaaar  
       2021-09-15 12:35:03 +08:00 via Android
    工具统一,习惯统一,用 jb 家的 ide,同一换行
    JJsty1e
        13
    JJsty1e  
       2021-09-15 12:36:17 +08:00
    我屏幕大,我支持换行
    yolee599
        14
    yolee599  
       2021-09-15 12:44:30 +08:00 via Android
    遵从语言使用习惯,c/c++,c# 大家都换行你不换行就显得很另类
    masterclock
        15
    masterclock  
       2021-09-15 12:51:35 +08:00
    古代的时候,编辑器还没现在这么强大,如果开大括号不换行,找对应的时候真是要死啊
    MayKiller
        16
    MayKiller  
       2021-09-15 12:56:31 +08:00
    为啥纠结。
    JS/TS 用 Prettier
    C/C++ 用 clang-format
    Rust/Go 都自带
    每个语言分别统一就没这么多事儿了
    heiheidewo
        17
    heiheidewo  
       2021-09-15 13:02:10 +08:00
    整个项目用同一种代码风格就行了,至于哪种风格适合自己,可以用 https://formatter.org/ 在线格式化代码看看
    yuhangch
        18
    yuhangch  
    OP
       2021-09-15 14:23:00 +08:00
    @dingwen07 不敢,刚上班,自己难受不能让大哥们难受哈哈
    Macolor21
        19
    Macolor21  
       2021-09-15 14:53:50 +08:00
    Google, Leetcode 都是括号之后不换行。
    pigspy
        20
    pigspy  
       2021-09-15 15:23:48 +08:00
    遵从语言习惯吧
    qwerthhusn
        21
    qwerthhusn  
       2021-09-15 16:09:41 +08:00
    这个不同的公司有不同的规定,不过大部分公司压根不规定

    所以想换就换想不换就不换。。
    之前菊花的 Java 就是要求换的,在分支比较多的时候,看着代码特别的散
    qW7bo2FbzbC0
        22
    qW7bo2FbzbC0  
       2021-09-15 16:22:52 +08:00
    @pkookp8 #7 python 的 Logger 命名风格与 pep8 不一致
    namelosw
        23
    namelosw  
       2021-09-15 16:29:37 +08:00
    之前看一些用 C# 讲解东西的博客帖子,感觉很蛋疼,翻了好多页没讲几句话。
    Rwing
        24
    Rwing  
       2021-09-15 17:07:20 +08:00
    没想到这个问题也能黑起来,明明是两种风格,没有孰优孰劣。
    有这个功夫,不如看看这两行代码哪个更清爽
    person.setAge(p.getAge() + 1);
    person.Age++;
    aneostart173
        25
    aneostart173  
       2021-09-15 17:24:23 +08:00
    @AoEiuV020 c/c++有换的有不换的,我习惯不换。
    fgwmlhdkkkw
        26
    fgwmlhdkkkw  
       2021-09-15 17:24:35 +08:00
    @Rwing #24 persion.AgeIncrBy(1); 🐶
    huruwo
        27
    huruwo  
       2021-09-15 17:43:07 +08:00
    支持分号不换行
    hatsuyuki
        28
    hatsuyuki  
       2021-09-15 17:47:09 +08:00
    @liuhuansir JetBrains Google 都是左括号不换行的
    0o0o0o0
        29
    0o0o0o0  
       2021-09-15 18:01:10 +08:00
    只要是整齐就好
    echo1937
        30
    echo1937  
       2021-09-15 18:10:19 +08:00 via iPhone
    我写的 c 、go 、java 、js 、kotlin 都是不换行,习惯了。
    Hanggi
        31
    Hanggi  
       2021-09-15 18:12:02 +08:00
    Golang: 不要把时间精力花在这种无关紧要的细节上,花括号换行直接编译器报错。
    useben
        32
    useben  
       2021-09-15 18:16:08 +08:00
    Golang: 直接统一编码风格, 把精力花在刀刃上
    Building
        33
    Building  
       2021-09-15 18:39:05 +08:00 via iPhone
    因为这一点,果断放弃了 Go,就好像非要强迫左撇子用右手写字一样,怎么写怎么不爽,代码能写好吗?
    chuhades
        34
    chuhades  
       2021-09-16 01:18:11 +08:00
    统一即美。
    Rocketer
        35
    Rocketer  
       2021-09-16 03:25:58 +08:00
    什么代码都能读,但自己写还是习惯不换行,写完了用快捷键格式化一下再保存,OVER 。

    不过 Visual Studio 格式化 js 也是换行的

    我现在领略到了 Python 的智慧——直接不用花括号,看你们谁还 BB !
    Maiiiiii
        36
    Maiiiiii  
       2021-09-16 09:34:00 +08:00
    之前从 java 转 unity,每天都在换行还是不换行之间自我怀疑
    liberize
        37
    liberize  
       2021-09-16 09:41:59 +08:00 via Android
    if (a)
    {
    a = b;
    }
    else
    {
    a = c;
    }
    看到这种本来一个三元表达式 1 行搞定的也能写 8 行,真的浑身难受
    dfkjgklfdjg
        38
    dfkjgklfdjg  
       2021-09-16 10:15:11 +08:00
    @liberize #37,单独一行的花括号真的太淦了.....

    ```
    if (a) {
    a = b;
    } else {
    a = c;
    }
    ```
    或者
    ```
    !!a ? a=b : a=c
    ```

    会舒服好多啊.....为啥要折行 增加 无意义段落,
    对比一下折 3 行的情况,明明可以用水果刀的,非要上电锯…

    ![两种换行]( )


    早些年还看到过这样的 🤯🤯🤯
    ```
    if (foobar) {
    foo(); }
    else {
    bar(); }
    ```
    难受死我算了
    Fule
        39
    Fule  
       2021-09-16 10:20:56 +08:00
    这个还是遵守不同语言的编程规范和约定吧。比如 C# 就换行,JS 就不换行,没有说所有语言都要换行或者都不换行。
    thtznet
        40
    thtznet  
       2021-09-16 10:44:00 +08:00
    @NewYear 因为 C# 的 IDE 默认就可以根据方法名进行折叠的,屏幕空间并不是问题。
    NewYear
        41
    NewYear  
       2021-09-16 11:13:59 +08:00
    @thtznet

    我多语言轻度使用,不太喜欢折叠,虽然折叠真的能让结构更加清晰。
    ragnaroks
        42
    ragnaroks  
       2021-09-16 11:37:50 +08:00
    如果是 vs 的话,可以设定格式化规则,默认规则下很多地方都换行,可以导入别人写好的规则。我现在用的是他们自己人 Tim Lu 的规则。

    public void method1(param1,param2,param3){
    codeLine;
    codeLine;

    if(true){ codeBlock; }else{ codeBlock; }

    if(false){
    codeBlock;
    codeBlock;
    }else{
    codeBlock;
    codeBlock;
    }

    code=codeBlock?codeBlock:codeBlock;

    return;
    }
    ragnaroks
        43
    ragnaroks  
       2021-09-16 11:39:31 +08:00
    格式被抹掉了,懒得贴图了,主要就是缩减各种空格和换行,在方法逻辑多的情况下有辨识度的问题,但是配合多色着色倒是问题不大。
    astkaasa
        44
    astkaasa  
       2021-09-17 13:03:47 +08:00
    spring java formatter 是换行的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3236 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 12:10 · PVG 20:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.