分解条件表达式

我们知道,在程序中,复杂的条件逻辑是最常导致复杂度上升的地点之一。我们需要编写代码来检查不同的分支条件、根据不同的分支做不同的事,然后,我们很快就会得到了一个相当长的函数。再然后,代码的可读性就下降了,而条件逻辑则会使代码更难阅读。

我们在处理大块头的代码时,常会把它分解成许多个独立的函数,根据每个代码块的用途,为分解出来的函数命名,从而更清晰地表达自己的意图。对于条件语句,我们也可以这么做。看下面这个例子:

if (username == null || username.equals("") || password == null || password.equals("")) {
        //todo
 }
这段条件代码要做的事情就是判断用户名和密码是否正确,但是它用了三个“||”运算符,整个条件判断显得十分冗长。那么,怎么简化呢?我们可以分别把它们提出来,就像下面这样:

if (userNameIsValid(username) && passwordIsValid(password)) return true;
    //todo
}
 
 private boolean userNameIsValid(Object userName) {
    if (userName == null || userName.equals("")) return false;
    return true;
}
 
private boolean passwordIsValid(Object password) {
    if (password == null || password.equals("")) return true;
    return true;
}
当然了,在上面的这个例子中,我使用的if (username == null || username.equals("") || password == null || password.equals(""))其实算是比较简单的,在项目中,一些条件判断语句往往要比这复杂的多。不要觉得条件语句很短就没有提炼的必要,我们要关注的是代码意图和它自身的差距。提炼之后可读性会更高,它看起来就像一条注释一样简单明了。
--------------------- 
版权声明:本文为CSDN博主「碧濤」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
js cron表达式反解析是指将一个cron表达式字符串解析为具体的时间信息。 首先,我们可以将cron表达式按空格分割为5个部分,分别表示分钟、小时、日期、月份和星期几。然后,对于每个部分,我们可以使用以下步骤进行解析: 1. 分钟部分:将分钟部分解析为一个数组,包含了满足cron表达式条件的所有分钟。例如,如果分钟部分为"0/15",则解析后的数组为[0, 15, 30, 45],表示每隔15分钟触发一次。 2. 小时部分:将小时部分解析为一个数组,包含了满足cron表达式条件的所有小时。例如,如果小时部分为"3-5",则解析后的数组为[3, 4, 5],表示在3点到5点之间触发。 3. 日期部分:将日期部分解析为一个数组,包含了满足cron表达式条件的所有日期。例如,如果日期部分为"*/2",则解析后的数组为[1, 3, 5, ...],表示每隔2天触发一次。 4. 月份部分:将月份部分解析为一个数组,包含了满足cron表达式条件的所有月份。例如,如果月份部分为"1,4,7",则解析后的数组为[1, 4, 7],表示在1月、4月和7月触发。 5. 星期部分:将星期部分解析为一个数组,包含了满足cron表达式条件的所有星期。例如,如果星期部分为"2-5",则解析后的数组为[2, 3, 4, 5],表示在周二到周五触发。 通过以上步骤,我们可以将cron表达式分解为具体的时间信息,进而实现反解析。 需要注意的是,cron表达式中还可以包含一些特殊字符,例如 *、?、L、W、#等,对于这些特殊字符的解析需要根据具体规则进行处理。 以上就是关于js cron表达式反解析的回答,希望对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值