有没有和我一样喜欢把大括号上下对齐的?尤其是 if 语句 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
UtopiaCHN
V2EX    程序员

有没有和我一样喜欢把大括号上下对齐的?尤其是 if 语句

  •  
  •   UtopiaCHN 2016-01-29 1:25:17 +08:00 14796 次点击
    这是一个创建于 3543 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言    2016-01-29 17:00:55 +08:00

    风格一:

    if ( ... )
    {
    ...
    }
    else
    {
    ...
    }

    风格二:

    if ( ... ){
    ...
    }else{
    ...
    }

    你们不觉得第一种的代码可读性更好吗?尤其是多层嵌套的时候。

    112 条回复    2016-02-13 17:46:46 +08:00
    1  2  
    bdbai
        1
    bdbai  
       2016-01-29 14:43:13 +08:00 via iPhone
    不说语言的都是耍流氓。
    有时候左括号换号是 IDE 给逼的,比如 VS 。个人倾向于不换行。
    skywatcher
        2
    skywatcher  
       2016-01-29 15:05:46 +08:00
    之前喜欢换行(据说¥ 1/行)。后来就算 vs 也强制不换行了,更紧凑剪短,阅读起来方便,还有这一行特么得值¥ 1 啊。

    PS :其实还是看习惯:-D
    LinJunzhu
        3
    LinJunzhu  
       2016-01-29 15:29:33 +08:00
    觉得楼主是个 JAVA 工程师
    knightdf
        4
    knightdf  
       2016-01-29 16:00:06 +08:00
    @LinJunzhu 我觉得楼主是个 C#工程师, Java 都是不换行的
    Kilerd
        5
    Kilerd  
       2016-01-29 16:07:11 +08:00
    if for 这些后面的{ 都是不用换行的

    只有 class 才用换行

    这个不是规范里面讲了吗?
    sun2920989
        6
    sun2920989  
       2016-01-29 16:08:40 +08:00
    每个语言的规范不一样,一般要么按自己喜好随意,要么尊重使用语言的官方或社区性规范
    ykqmain
        7
    ykqmain  
       2016-01-29 16:09:54 +08:00
    不管什么大括号, 都喜欢单独一行, 我是不是没救了
    {
    //
    }
    raincious
        8
    raincious  
       2016-01-29 16:10:09 +08:00
    @Kilerd 还是看语言对应的规范。

    如果你想在 Visual Studio 里写 if (blabla) {的话,最后会被 IDE 逼疯的,至少写 C++的时候是这样。
    mogita
        9
    mogita  
       2016-01-29 16:13:35 +08:00 via iPhone   1
    我把 phpstorm 自动排版设置成大括号一律去下一行。。
    asdwfwqd
        10
    asdwfwqd  
       2016-01-29 16:17:58 +08:00
    我也喜欢,但是快捷键格式化的时候也给我改成不换行的了, java eclipse
    小时候 vc 6.0 留下来的习惯吧
    烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
    Kilerd
        11
    Kilerd  
       2016-01-29 16:20:07 +08:00
    @raincious 那也是,不过好像都有那么两个党派吧,无论是什么语言。

    所以我用 Python : P


    @ck65 PHP 还是习惯我在 5L 说的那种写法。 BTW , phpstorm 应该可以设置啊。
    MartinLv
        12
    MartinLv  
       2016-01-29 16:20:31 +08:00
    平时写 OC/Swift 。屏幕纵向空间宝贵,因此所有左大括号都不换行。
    zacard
        13
    zacard  
       2016-01-29 16:34:04 +08:00
    个人习惯吧。。。
    kepenj
        14
    kepenj  
       2016-01-29 16:36:21 +08:00
    换行的都是牛芒
    ZyZyZzz
        15
    ZyZyZzz  
       2016-01-29 16:38:21 +08:00
    不换行的都是流氓

    不换行阅读效率骤减
    jessynt
        16
    jessynt  
       2016-01-29 16:38:26 +08:00
    if (balabala) {
    #code
    }
    ragnaroks
        17
    ragnaroks  
       2016-01-29 16:43:28 +08:00
    我都是
    ///xxxx
    function(param){//xx
    }
    miyuki
        18
    miyuki  
       2016-01-29 17:05:29 +08:00
    Golang: 你说啥?
    66beta
        19
    66beta  
       2016-01-29 17:06:42 +08:00
    google code style guide
    Rachel030219
        20
    Rachel030219  
       2016-01-29 17:45:25 +08:00
    个人表示更喜欢第二种,虽然开发工具的代码格式化工具格式化出来是第一种,每次都要自己改好久,我是不是没救了
    mogita
        21
    mogita  
       2016-01-29 18:05:12 +08:00 via iPhone
    @Kilerd 嗯,我就是指的 code style 设置。
    RqPS6rhmP3Nyn3Tm
        22
    RqPS6rhmP3Nyn3Tm  
       2016-01-29 18:42:34 +08:00
    @Kilerd Python 也是可以打起来的,比如空格和 tab :doge:
    FrankFang128
        23
    FrankFang128  
       2016-01-29 18:45:58 +08:00 via Android
    重要吗
    MyFaith
        24
    MyFaith  
       2016-01-29 18:51:08 +08:00
    我和楼主一样是强迫症。
    orvice
        25
    orvice  
       2016-01-29 18:52:03 +08:00
    golang 你这样写试试看。
    niseceric
        26
    niseceric  
       2016-01-29 18:52:48 +08:00
    golang +1 强迫症走好不送
    SpicyCat
        27
    SpicyCat  
       2016-01-29 18:53:12 +08:00
    每次看到这种问题,我就想到 Golang ,直接从语言层面扼杀了撕逼的可能,这得节约多少时间。
    Guenlay
        28
    Guenlay  
       2016-01-29 18:58:01 +08:00   1
    所以 Python 是最优美的语言

    大家快来吵架
    justjavac
        30
    justjavac  
       2016-01-29 19:00:25 +08:00
    去死吧!你这个异教徒! http://zhuanlan.zhihu.com/codestory/19700946
    Phariel
        31
    Phariel  
       2016-01-29 19:03:47 +08:00 via iPhone
    @justjavac 还是你这个应景!!!
    sjtlqy
        32
    sjtlqy  
       2016-01-29 19:04:34 +08:00
    golang 的兄弟们,起来弄死这些异教徒!!! 杀啊!!!!
    xuboying
        33
    xuboying  
       2016-01-29 19:19:47 +08:00 via Android
    不是说代码超过一屏后的 bug 量急剧增加么,还争什么。
    infinet
        34
    infinet  
       2016-01-29 19:49:23 +08:00
    坚决鄙视换行的异端,必需是风格二。
    mikicomo
        35
    mikicomo  
       2016-01-29 19:54:05 +08:00
    C/C++ 风格一, java 风格二,至于 python 呢.....#(滑稽)
    ZhaoMiing
        36
    ZhaoMiing  
       2016-01-29 19:56:20 +08:00
    if(...){
    ...
    }
    else{
    ...
    }
    nozama
        37
    nozama  
       2016-01-29 19:58:42 +08:00
    我就知道,不换行的居多...

    然而失去对称美实在看不下去!

    紧凑? 你咋不每个 block 写一行呢,那才紧凑呢。
    precisi0nux
        38
    precisi0nux  
       2016-01-29 20:11:35 +08:00
    其实根本不重要,按自己的风格写, commit 之前按照约定的标准格式化一下代码,搞定。
    Delbert
        39
    Delbert  
       2016-01-29 20:34:37 +08:00
    @ykqmain
    @MyFaith
    @UtopiaCHN
    你们写 tcl 的时候给我换行试试,函数名后不加空格直接接{试试。
    不说什么语言纯粹耍流氓。
    vivisidea
        40
    vivisidea  
       2016-01-29 21:18:26 +08:00
    必须是风格二,就连 shell 脚本也是

    if [ $? -eq 0 ]; then
    # do something ...
    fi
    cxbig
        41
    cxbig  
       2016-01-29 21:35:04 +08:00
    语言都有统一的代码规范, IDE 自动 reformat ,这种东西不值得操心。
    真要喜欢某个风格,自己改一下本地标准就好。
    morewe
        42
    morewe  
       2016-01-29 21:36:36 +08:00
    各人喜好吧。
    个人有强迫症喜欢风格二。。。而且省行数,可以阅读更多行。
    MountainRain
        43
    MountainRain  
       2016-01-29 21:37:25 +08:00
    公诉人:代码是你写的么? 被告:是 公诉人:念一遍 被告:巴拉巴拉巴拉 审判长:停,你刚刚的大括号换行了吗? 被告:换了 审判长:判 10 年
    raycloud
        44
    raycloud  
       2016-01-29 21:38:05 +08:00
    @morewe 同感
    msg7086
        45
    msg7086  
       2016-01-29 21:52:03 +08:00
    ruby 表示大括号开 block 都是 one line 。
    tux
        46
    tux  
       2016-01-29 21:55:28 +08:00
    {
    {
    {
    这不是更好看
    }
    }
    }
    loveuqian
        47
    loveuqian  
       2016-01-29 21:57:57 +08:00
    - (void)test
    {
    if () {
    //
    }
    }
    jasontse
        48
    jasontse  
       2016-01-29 21:58:54 +08:00 via iPad
    用 Visual Studio 的时候用风格一,其它时候用风格二。
    Zohar
        49
    Zohar  
       2016-01-29 21:59:31 +08:00
    if(…){

    }else{

    }
    plqws
        50
    plqws  
       2016-01-29 22:01:56 +08:00
    觉得换行才丑的只有我一个么
    wizardforcel
        51
    wizardforcel  
       2016-01-29 22:25:16 +08:00
    在模板里写第二种,在代码里写第一种。
    zhgg0
        52
    zhgg0  
       2016-01-29 22:36:14 +08:00
    这种东西没什么好讨论的,严格按照各个语言的规范来。
    konakona
        53
    konakona  
       2016-01-29 22:40:38 +08:00
    我啊!我挺喜欢的!
    GGGG430
        54
    GGGG430  
       2016-01-29 23:21:25 +08:00
    与团队项目风格一致就行, 个人习惯已不重要
    oska874
        55
    oska874  
       2016-01-29 23:33:42 +08:00
    astyle --style=linux xxx.c
    killerv
        56
    killerv  
       2016-01-29 23:43:31 +08:00   1
    以前我是都不换行,但是上次听同事说然后看了看,规范的代码应该是这样:
    class 和方法名的花括号换行,凡是逻辑类型的花括号都不换行。
    写 Python 就不用纠结这个, 2333
    icreeper
        57
    icreeper  
       2016-01-29 23:45:04 +08:00
    if ( ... ){
    ...
    }
    else{
    ...
    }
    个人喜欢这样
    500miles
        58
    500miles  
       2016-01-29 23:51:07 +08:00   1
    if switch for ..... 控制语句不换行...

    function class .... 换行
    pynix
        59
    pynix  
       2016-01-29 23:55:09 +08:00
    本上是 Java , C#之争
    skyshy
        60
    skyshy  
       2016-01-30 00:18:53 +08:00
    居然发现 你写的代码行数 比我的还多~哈哈
    paicha
        61
    paicha  
    PRO
       2016-01-30 01:19:37 +08:00
    楼主缺金币了,哈哈
    bingwenshi
        62
    bingwenshi  
       2016-01-30 01:20:11 +08:00
    你这种属于异教徒,应该烧死

    坚决支持第二种,才是正义
    zonghua
        63
    zonghua  
       2016-01-30 01:21:38 +08:00 via iPhone
    @Kilerd PHP 的标准化是函数类方法要换行的、而循环和逻辑就不换行。
    Yvette
        64
    Yvette  
       2016-01-30 02:46:46 +08:00
    if ( ... ){
    ...
    }
    else{
    ...
    }
    SharkIng
        65
    SharkIng  
       2016-01-30 07:28:28 +08:00
    不是每个标准都是一样的...
    loading
        66
    loading  
       2016-01-30 07:57:07 +08:00 via Android
    我就是这种人…
    yougg
        67
    yougg  
       2016-01-30 09:01:00 +08:00
    我写 Java 时, 左大括号{ 从来都是单独一行.
    我写 Go 时, 左大括号{ 从来都不是单独一行.

    :doge:
    Perry
        68
    Perry  
       2016-01-30 09:44:57 +08:00 via iPhone
    只要确保 consistency 就可以了
    hantsy
        69
    hantsy  
       2016-01-30 09:51:05 +08:00
    PHP PSR 好像有这要求。。。

    不过我基本写 Java , 都是将 { 放末尾。。。 Java 一些觉的 CodeStyle 如 Google Code Style 也是如此。
    beemolin
        70
    beemolin  
       2016-01-30 10:00:49 +08:00
    if (...) {
    ...
    } else {
    ...
    }
    chuhemiao
        71
    chuhemiao  
       2016-01-30 10:06:10 +08:00
    一直是风格 2 ,但是老大一直是风格 1
    h1029306
        72
    h1029306  
       2016-01-30 10:10:30 +08:00
    @UtopiaCHN 风格 2 里面竟然不空格,异教徒烧死

    if (...) {
    ...
    } else {
    ...
    }
    hronro
        73
    hronro  
       2016-01-30 10:13:35 +08:00
    我也喜欢这种风格,可惜我现在的主要语言是 Javascript ,没法用这种风格(万恶的行尾自动加分号)
    return
    {
    ...
    }
    这种会被转换成
    return ;
    {
    ...
    }
    最后 return 一个 undefined 出来
    zhjits
        74
    zhjits  
       2016-01-30 10:13:53 +08:00
    只要保证 } else { ,别的我没意见
    igaozp
        75
    igaozp  
       2016-01-30 10:13:58 +08:00
    按照规范来
    beemolin
        76
    beemolin  
       2016-01-30 10:39:43 +08:00
    同意 @zhjits
    else 换行跟 if 换行的风格 1 一样都是异教徒
    theJian
        77
    theJian  
       2016-01-30 10:51:10 +08:00
    这个贴至少值五毛
    wawehi
        78
    wawehi  
       2016-01-30 10:57:00 +08:00
    不喜欢打花括号,所以转入了 py 的行列
    Bryan0Z
        79
    Bryan0Z  
       2016-01-30 10:57:32 +08:00 via Android
    写 Java 的,一直风格二
    kingcos
        80
    kingcos  
       2016-01-30 11:02:30 +08:00 via iPhone
    尼玛,我这个选择困难症加强迫症,看到这个又纠结了。。。
    colordancer
        81
    colordancer  
       2016-01-30 11:06:47 +08:00
    我来告诉你为什么要换行:

    //if ()
    {

    }
    dacapoday
        82
    dacapoday  
       2016-01-30 11:16:04 +08:00
    这真是万年钓鱼贴
    an168bang521
        83
    an168bang521  
       2016-01-30 11:21:51 +08:00
    if ( ... ){
    //
    }else{
    ...
    }
    liberize
        84
    liberize  
       2016-01-30 12:26:22 +08:00
    java 一律用风格二, c++ 除了函数用风格一,其余类、语句块等都用风格二
    风格二看起来比较紧凑,另外空格不能少
    PS: 前提是写自己的代码,如果是改现有的代码,保持原有风格
    RitzoneX
        85
    RitzoneX  
       2016-01-30 13:16:22 +08:00
    C 用第 1 种
    Java 用第 2 种
    eliteYang
        86
    eliteYang  
       2016-01-30 13:38:07 +08:00
    用 C++,喜欢第一种, java 的人用第二种
    liearth
        87
    liearth  
       2016-01-30 14:29:30 +08:00
    if () {
    ...
    } else {
    ...
    }
    awfe
        88
    awfe  
       2016-01-30 14:32:21 +08:00
    楼主你 else 两边竟然不加空格……
    wangluwl
        89
    wangluwl  
       2016-01-30 14:38:58 +08:00
    @Yvette me too,习惯这种
    lsmgeb89
        90
    lsmgeb89  
       2016-01-30 14:40:57 +08:00
    if (…) {

    } else {

    }
    akstrom
        91
    akstrom  
       2016-01-30 14:48:42 +08:00
    if ( ... )
    {
    ...
    }
    else
    {
    ...
    }

    看到不是这样的我会很自然的帮它回车..............
    Arthur2e5
        92
    Arthur2e5  
       2016-01-30 15:42:46 +08:00
    哦?我也喜欢对齐啊:

    if (cond)
    --do_something();
    else
    --{
    ----blah();
    ----goto err;
    --}

    (逃)
    * * *
    @vivisidea 在 $? 上面做 zero-check 而不是用 && 和 || 或者直接 if previous_command 都是教程看傻了……
    sfz97308
        93
    sfz97308  
       2016-01-30 16:52:07 +08:00
    之前习惯风格一,感觉结构更清晰易读。
    现在变成习惯风格二了,再看之前自己写的风格一代码,感觉好松散。
    这两种都是合理的,各有利弊。
    iamleung
        94
    iamleung  
       2016-01-30 17:22:28 +08:00
    貌似还没有开始讨论花括号前要不要加空格?
    ^_^
    erinsnow
        95
    erinsnow  
       2016-01-30 17:52:19 +08:00
    @iamleung 不加空格能看吗?就那么懒?懒还回车干啥,全部代码写成一行算了。。。。。
    iamleung
        96
    iamleung  
       2016-01-30 18:23:14 +08:00
    @erinsnow ← ← 大兄弟不要激动,我没说不加空格呢
    littleshy
        97
    littleshy  
       2016-01-30 19:25:13 +08:00
    明明都是可以设置的,为什么都要怪到 VS 身上?
    realpg
        98
    realpg  
    PRO
       2016-01-30 21:57:24 +08:00
    PHPer ,个人用后一种,最主要原因是省一个空行,一屏幕能多显示出很多代码。

    但是 PSR 规范要求前一种,十分搞不懂连特么括号怎么写都规定……
    Kokororin
        99
    Kokororin  
       2016-01-31 14:48:03 +08:00
    我用 phpfmt 直接格式化成风格一……
    will0404
        100
    will0404  
       2016-01-31 14:53:54 +08:00 via iPhone
    非要大括号的话必然是风格二啊 由于渐渐开始讨厌大括号 现在写 js 开始用 coffee 写
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2274 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 01:00 PVG 09:00 LAX 18:00 JFK 21:00
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86