找回密码
 点一下
查看: 1658|回复: 5

这个组合验证器里的“否定”字段真坑爹

[复制链接]
发表于 2014-9-28 12:13:19 | 显示全部楼层 |阅读模式
最直观的理解就是对组合结果进行“非”计算,但是做出来果断不对。我那个遇到问题的验证器很复杂,由N多层套嵌计算得到,结果排查半个多小时,才想到是不是“否定”的意思理解错误。经过测试,原来这个“否定”是对个组合项目先进行“非”计算,然后在执行“和/或”计算,坑爹呀.....
发表于 2014-9-28 21:56:34 | 显示全部楼层
本来not的优先级就高于or和and吧,逻辑运算里……

点评

我到记得是哪个在前哪个优先来着,不过这不是问题的关键,关键是组合验证器的and条目是写在一起的,而not则写在外面,给人的错觉就是and运算是加了括号的....  详情 回复 发表于 2014-10-1 18:43
回复

使用道具 举报

发表于 2014-9-29 13:01:34 来自手机 | 显示全部楼层
逻辑或者离散数学里面都有讲这个的优先级吧。。。。
回复

使用道具 举报

发表于 2014-9-30 07:40:47 | 显示全部楼层
为了把程序和数据的工作分开,真是设计了一套够复杂的系统呢。。
回复

使用道具 举报

 楼主| 发表于 2014-10-1 18:43:33 | 显示全部楼层
本帖最后由 yxxiaobin 于 2014-10-1 18:46 编辑
nutari 发表于 2014-9-28 21:56
本来not的优先级就高于or和and吧,逻辑运算里……


我到记得是哪个在前哪个优先来着,不过这不是问题的关键,关键是组合验证器的and条目是写在一起的,而not则写在外面,给人的错觉就是and运算是加了括号的。也就是说,如果直接看过去,应当是这种格式:Not(A And B And C),但实际情况人家Not是会分身术的,其结果就是:(Not A) And (Not B) And (Not C)
回复

使用道具 举报

发表于 2020-1-19 11:48:33 | 显示全部楼层
对,太坑了,都这么多年过去了,我还差点栽倒在里面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-25 22:52 , Processed in 0.257675 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表