不懂就问,这个 if 存在的意义是什么呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ashore
V2EX    问与答

不懂就问,这个 if 存在的意义是什么呢?

  • nbsp;
  •   Ashore 2022-09-05 11:57:33 +08:00 3447 次点击
    这是一个创建于 1139 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image.png 最近看到的这份代码,有很多这样的写法。这样写是有什么意义吗?

    if(1==1){ }else{ // do something } 
    24 条回复    2022-09-06 05:09:41 +08:00
    metamask
        1
    metamask  
       2022-09-05 11:59:48 +08:00
    如果讨论意义的话

    大概思路是这样的
    - 保持 if else 判断完整
    - 保持正向判断

    所以就有了图片这个写法
    lakehylia
        2
    lakehylia  
       2022-09-05 12:02:35 +08:00
    写个注释就好了。有时候 IDE 会帮你简化的。
    wfd0807
        3
    wfd0807  
       2022-09-05 12:20:49 +08:00
    见过类似的代码,一个自学 python 编程的测试就是这么写的
    问:为什么空 if ?
    答:没反应过来
    问:那现在反应过来了
    答:懒得改了
    fmumu
        4
    fmumu  
       2022-09-05 12:33:41 +08:00
    需求变化了?
    hgc81538
        5
    hgc81538  
       2022-09-05 12:34:13 +08:00
    直白, 我在空白 if 加
    if($is_authenticated){// passed}else{...}
    murmur
        6
    murmur  
       2022-09-05 12:41:14 +08:00
    这种 if true 一般是想写什么,但是突然去掉了这个判断,保留以作后用
    heyjei
    7
    heyjei  
       2022-09-05 12:42:46 +08:00   6
    这事儿,我经常干,

    经常需求改着改着 if 里面的逻辑就不要了,但是 else 里面的逻辑还是要的,于是只能把 if 里面的逻辑删了,但是要是真的删了,万一以后又要用怎么办,于是只能把逻辑判断改成永远都是 false 或者 true 。

    但是 if (true) 或者 if (false) IDE 又会提示警告信息,于是换成 if (1 == 1) 或者 If (1 != 1) 完美解决问题。
    Jooooooooo
        8
    Jooooooooo  
       2022-09-05 12:46:02 +08:00
    忘记去掉了, 逻辑更清晰.
    meeop
        9
    meeop  
       2022-09-05 12:53:54 +08:00
    占坑用的代码啊,代码除了逻辑,也还有流程,结构

    这种就是先写结构,后填逻辑,只不过出于各种原因有些逻辑是空
    yjim
        10
    yjim  
       2022-09-05 14:27:46 +08:00   1
    你这图里的示例跟你放出来的根本就是两码事...

    图里的逻辑是这样的, 去数据库取东西出来并赋给变量 $tt

    如果 $tt 存在且不为 NULL 则执行 if 里的代码, 如果 $tt 不存在或者 $tt 为 NULL 则执行 else 里的代码

    值得注意的是不同语言对 if 变量 这种格式的判断方法是不一样的, 像 PHP 变量为 NULL 也是 FALSE; 其他语言就不一定了,可能只要变量是存在的即使为 None 也算 True
    Vegetable
        11
    Vegetable  
       2022-09-05 14:31:11 +08:00
    没有注释一律认定为屎山
    我认可为了减少心智负担,让代码逻辑符合认知,而预留奇怪的无意义写法,但是这种写法必须有其他文字说明。
    interger
        12
    interger  
       2022-09-05 15:09:03 +08:00   4
    这段代码让我最恼火的不是 if ,是花括号
    chenyu8674
        13
    chenyu8674  
       2022-09-05 15:18:35 +08:00   1
    我倒是经常会写
    if (条件 1 || 条件 2 ) {
    } else {
    doSomething
    }

    不然用一堆否判断会极大降低可读性
    laoyur
        14
    laoyur  
       2022-09-05 15:21:45 +08:00
    @interger 暴躁老哥,不仅花括号风格混搭,还特么符号两边不留空格!
    Ashore
        15
    Ashore  
    OP
       2022-09-05 16:05:57 +08:00
    @freakxx 那也没必要所有的都这么写。。80%以上的查询都带了这么一个判断。,。,。
    Ashore
        16
    Ashore  
    OP
       2022-09-05 16:06:56 +08:00
    @fmumu 不知道。。。如果是需求变了的话,那也不应该没代码。。
    Ashore
        17
    Ashore  
    OP
       2022-09-05 16:08:50 +08:00
    @interger 我不敢格式化,刚开始的时候有个文件我给格式化了,然后就一直报错。
    hzxxx
        18
    hzxxx  
       2022-09-05 19:39:49 +08:00
    有没有可能是自动生成的
    jtsr
        19
    jtsr  
       2022-09-05 19:48:51 +08:00
    在 python 里一般加个 pass ,感觉逻辑比较顺。用非条件增加理解成本
    f0rger
        20
    f0rger  
       2022-09-05 20:34:41 +08:00 via iPhone
    有没有可能,领导要求过高代码量?比如我现在的公司就是。而且他还真看,偶尔会截图问为什么提交少
    yolee599
        21
    yolee599  
       2022-09-05 21:44:09 +08:00
    一般这种空白的地方我会加一句:
    /* nothing to do */
    darkengine
        22
    darkengine  
       2022-09-05 22:03:53 +08:00
    为了应付这种情况:

    产品经理:还是改回去吧
    kingjpa
        23
    kingjpa  
       2022-09-05 22:58:07 +08:00
    自己给自己的一种规范, 后期加逻辑 会清晰很多
    ijrou
        24
    ijrou  
       2022-09-06 05:09:41 +08:00
    本来 if 里面是有逻辑的,然后业务变更,就没有了。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1154 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 17:55 PVG 01:55 LAX 10:55 JFK 13:55
    Do have faith in what you're doing.
    ubao msn 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