V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Ashore
V2EX  ›  问与答

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

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

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

    if(1==1){
    
    }else{
    	// do something
    }
    
    24 条回复    2022-09-06 05:09:41 +08:00
    freakxx
        1
    freakxx  
       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   ·   实用小工具   ·   1402 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:24 · PVG 01:24 · LAX 09:24 · JFK 12:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.