如何优化if/else条件判断,编写符合DRY原则的简洁代码?
优化条件判断以符合DRY原则
第一个案例优化
原代码:
if flag? box? && ball? else box? end
可以提取公共的box?判断,将逻辑简化为两种等价形式:
# 逻辑表达式形式 box? && (!flag? || ball?)
# 三元表达式形式,可读性更强 box? && (flag? ? ball? : true)
逻辑说明:无论flag?状态如何,box?都必须为真;当flag?为真时,额外要求ball?为真;flag?为假时,仅需box?为真即可,完全匹配原逻辑,且避免了重复书写box?。
第二个案例优化
原代码:
if flag? box? && ball? else box? && ball? && bat? end
这里公共部分是box? && ball?,同样可以简化为两种等价形式:
# 逻辑表达式形式 box? && ball? && (flag? || bat?)
# 三元表达式形式 box? && ball? && (flag? ? true : bat?)
逻辑说明:box?和ball?在两种分支里都需要为真,仅当flag?为假时,额外要求bat?为真。提炼公共判断后,避免了重复书写box? && ball?,完全符合DRY(Don't Repeat Yourself)原则。
内容的提问来源于stack exchange,提问作者tech spam
相关产品推荐
相关产品推荐

