什么是卫语句(卫语句)

如果条件语句极其复杂,就应该将条件语句拆解开,然后逐个检查,并在条件为真时立刻从函数中返回,这样的单独检查通常被称之为“卫语句”(guardclauses)摘自《重构—改善既有代码的设计》卫语句的效果就是将原来需要仔细阅读代码、细心整理逻辑的条件判断整理成一眼能看透的逻辑关系,效果就像以下:if(it==活的){if(it==人){if(it!=女人){…

大家好,又见面了,我是你们的朋友全栈君。

如果条件语句极其复杂,就应该将条件语句拆解开,然后逐个检查,并在条件为真时立刻从函数中返回,这样的单独检查通常被称之为“卫语句”(guard clauses)

摘自《重构—改善既有代码的设计》

卫语句的效果就是将原来需要仔细阅读代码、细心整理逻辑的条件判断拆解整理成一眼能看透的逻辑关系,其核心在于对复杂判断逻辑的拆分,不是逻辑的等价替换哈。效果就像以下:

if(it == 活的){

    if(it == 人){

        if(it != 女人){

            return 不喜欢;

        } else {

            return 喜欢;

        }

    } else {

        return 不喜欢;

    }

} else {

    return 不喜欢;

}

以上代码无非就是表达 我只喜欢活的女人 的意思,但是代码一层套一层明显妨碍了我在第一时间获取最核心信息的效率,使用卫语句来表达就是:

if (it != 活的){return 不喜欢}

if(it!=人){return 不喜欢}

if(it!=女人){return 不喜欢}

if(it == 女人 && it == 活的) {return 喜欢}

if(其他任何情况){return 不喜欢}

大概就是这么个东西,当然这些代码有重复的逻辑判断在里面,但是代码中为了增强代码的健壮性,多啰嗦两行代码对于初学者来说不是什么坏事。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125615.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea集成svn使用教程_idea svn使用教程

    idea集成svn使用教程_idea svn使用教程1IDEA集成SVN1.1下载SVN客户端这里使用的是TortoiseSVN,下载后安装,然后记住安装路径。官方下载地址:TortoiseSVN官方下载地址1.2安装SVN客户端在安装svn客户端的时候一定要勾选,否则在idea上集成svn的时候会找不到svn.exe而报错。如果安装时忘记勾选了的话,安装包重新运行,选择modify,然后勾选commandlinecl…

    2022年10月17日
    4
  • java中采用dom4j解析xml文件「建议收藏」

    java中采用dom4j解析xml文件「建议收藏」一.前言在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式;但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4j解析xml的具体操作。二.代码详情dom4j是一个第三方开发组开发出的插件,所以在我们使用dom4jf的时候我们要去下载一下dom4j对应版本的jar导入在我们项目中。1…

    2022年6月21日
    39
  • matlab求解时滞微分方程「建议收藏」

    matlab求解时滞微分方程「建议收藏」matlab求解时滞微分方程,dde23调用格式:sol=dde23(ddefun,lags,history,tspan);–ddefun函数句柄,求解微分方程y’=f(t,y(t),y(t-τ1),…,y(t-τk))必须写成下面形式:dydt=ddefun(t,y,Z);其中t对应当前时间t,y为列向量,近似于y(…

    2022年10月1日
    4
  • mysql 全文索引无效_为什么MySQL全文索引不起作用?

    mysql 全文索引无效_为什么MySQL全文索引不起作用?在尝试了我能做的一切之后,我终于创建了这个测试表:CREATETABLEtest_table(idint(11)NOTNULLAUTO_INCREMENT,titletextNOTNULL,PRIMARYKEY(id),FULLTEXTKEYtitle(title))ENGINE=MyISAMDEFAULTCHARSET=utf8使用以下测试数据:INSERT…

    2022年6月21日
    46
  • wamp下Apache2.4.x 配置httpd.conf允许外部访问

    wamp下Apache2.4.x 配置httpd.conf允许外部访问

    2021年9月12日
    46
  • java基础用BigDecimal保留两位小数「建议收藏」

    java基础用BigDecimal保留两位小数「建议收藏」/***保留两位小数*/@Testpublicvoidtest2(){BigDecimalbd=null;//始终显示两位小数double[]num={3.4567,3,0.4567,2343.333,133,3.1415};for(doublen:num){bd=newBigDecimal(n);bd=bd.setScale(2,BigDecimal.ROUND_HA.

    2022年9月23日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号