什么是卫语句(卫语句)

如果条件语句极其复杂,就应该将条件语句拆解开,然后逐个检查,并在条件为真时立刻从函数中返回,这样的单独检查通常被称之为“卫语句”(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 压缩文件密码暴力破解——cRARk使用方法

    压缩文件密码暴力破解——cRARk使用方法cRARk使用方法压缩文件如果忘记密码就需要使用暴力破解的方法进行破解,因为使用了加密的手段,是无法绕过密码验证的。cRARk是一款开源的功能强大的rar,7z类压缩软件的破解工具,支持GPU加速。官网地址目前有命令行版本和windows的GUI版本。使用方法在官网下载命令行版本GUI版本注意:GUI版本必须有命令行版本下才能运行GUI使用命令行版本下载解压,提示需要输入密码,但是实际上密码为空。或者为UTF-16。(crark55.rar)然后解压GUI版本,里面只有一个可运

    2022年4月28日
    1.3K
  • NAT模式和桥接模式实现局域网其他物理机器与Vmware虚拟机互相访问

    NAT模式和桥接模式实现局域网其他物理机器与Vmware虚拟机互相访问 一般装完Vmware虚拟机都需要与局域网中其他机器互联互通,在安装虚拟机的时候就要先考虑好用哪种模式进行连接。Vmware支持3种网络连接模式,我们先简单介绍一下3种模式然后再说具体的配置。一、3种连接模式1、桥接模式: 所谓桥接就是把两个本来分开的网段连接起来,连接之后成为了一个更大的网络。vmware提供了一个虚拟的桥接器,他就像一座桥一样把虚拟机的网络环境和物理机的网络环境连在了一起…

    2022年6月29日
    46
  • 开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)

    开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)QtCreator环境:使用QtCreator作为LinuxIDE,代替Vim:实现两台Linux电脑远程部署和调试(一台电脑有桌面系统,一台电脑无桌面系统)使用QtCreator作为LinuxIDE,实现CMake编译和单步调试在QtCreator中使用make构建,运行,调试通用C/C++项目使用QtCreator作为LinuxIDE,实现Nginx和Redis…

    2022年6月15日
    42
  • webstorm激活码最新2021 4月【在线注册码/序列号/破解码】

    webstorm激活码最新2021 4月【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    118
  • 布局转模型无法生成新图形_三维数组初始化

    布局转模型无法生成新图形_三维数组初始化本系列文章为原创,转载请注明出处。作者:DongdongBai邮箱:baidongdong@nudt.edu.cn若您觉得本博文对您有帮助,请您为我点赞并关注我,以鼓励我写出更优秀的博文。谢谢!Eigen:C++开源矩阵计算工具——Eigen的简单用法Eigen库是一个开源的C++线性代数库,它提供了快速的有关矩阵的线性代数运算,还包括解方程等功能。Eigen

    2022年10月19日
    3
  • 交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.doc

    交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.docPAGEPAGE3课程设计报告课程名称:FPGA现代数字系统设计设计名称:交通信号灯控制器姓名:***学号:2010000379专业:通信指导教师:***起止日期:2010.12.25-2011.1.9课程设计任务书设计名称:设计要求:(1)设计一个交通信号灯控制器…

    2022年9月24日
    5

发表回复

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

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