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

函数返回布尔值, 你们倾向于返回判断表达式还是加个 if 判断?

  •  
  •   yuann72 · 2018-07-12 10:39:58 +08:00 · 1575 次点击
    这是一个创建于 2353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第一种

    retrun 1 == 1 && 2 == 2 && 3 == 3 && 
    	123456 == 123456;
    

    第二种

    if (1 == 1 && 2 == 2 && 3 == 3 && 
    	123456 == 123456) {
    	return true;
    } else {
    	return false;
    }
    

    我感觉第一种可读性会差些, 特别是这个判断表达式很长的时候
    第二种又有些多余 不够简洁 你们怎么选?

    7 条回复    2018-07-12 13:52:30 +08:00
    xbigfat
        1
    xbigfat  
       2018-07-12 10:43:07 +08:00
    我对于比较复杂的判断,会使用第二种,并加以注释说明判断条件;
    很简单的问题比如 isMale 直接返回就可以了。
    yuann72
        2
    yuann72  
    OP
       2018-07-12 10:53:17 +08:00
    @xbigfat 那跟我平时差不多
    TuringGunner
        3
    TuringGunner  
       2018-07-12 10:54:27 +08:00
    看复杂程度吧,你这个例子我一般会写成第二种
    prolic
        4
    prolic  
       2018-07-12 11:08:10 +08:00 via Android
    这么长的我倾向于拆成 1 != 1 return false,2 != 2 return false .... return true,只有一个&&的情况我会用第一种
    shenjo
        5
    shenjo  
       2018-07-12 11:22:25 +08:00
    针对这个例子,我个人比较倾向 把这句话封装成函数,取个有意义的名字 return isTrue(),根据函数名就大致知道这是在干嘛,想看具体实现在去看。
    Justin13
        6
    Justin13  
       2018-07-12 13:35:29 +08:00 via Android
    @shenjo
    赞同
    May725
        7
    May725  
       2018-07-12 13:52:30 +08:00
    赞成 4 楼 ,如果条件多的情况下,分别独立出来判断更清晰些
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4619 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:01 · PVG 12:01 · LAX 20:01 · JFK 23:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.