今天说说德摩根定律在编程中的实践,题目看的很吓人,其实只要有一点点的高中数学知识就能看懂,而且这部分知识掌握后可以很快的运用到项目中,投资收益比非常高。
如果你觉得我的文章对你有帮助,在收藏的过程中,一定要记得点赞哦,谢谢你,这对我真的很重要🌟!
一、缘起:一段让人头大的逻辑判断
这两天在重构一些老项目,重构过程中遇到了一个让人非常头大的逻辑判断:
if(!((A && B) || C)) {
// do something
} else {
// do something
}
看了这段代码,我人都傻了,从里向外一层一层梳理逻辑时,我的大脑活动是这样的:
短短一行的逻辑判断里,与或非三个运算符都用上了,尤其是最后那个小括号一圈全体取反的操作,我脑子直接炸了。要知道人脑是很不擅长或运算和非运算的,更不要说这些运算组合在一起了。
又花了五分钟尝试从代码上下文中梳理业务逻辑无果后,我重新审视了这个问题:如果业务上不好处理这个问题,能不能从理论上找到突破口?
方向找对后,我很快就找到了解决方案,那就是离散数学里的德摩根定律(De Morgan’s laws)。</