这个组合验证器里的“否定”字段真坑爹
最直观的理解就是对组合结果进行“非”计算,但是做出来果断不对。我那个遇到问题的验证器很复杂,由N多层套嵌计算得到,结果排查半个多小时,才想到是不是“否定”的意思理解错误。经过测试,原来这个“否定”是对个组合项目先进行“非”计算,然后在执行“和/或”计算,坑爹呀..... 本来not的优先级就高于or和and吧,逻辑运算里…… 逻辑或者离散数学里面都有讲这个的优先级吧。。。。 为了把程序和数据的工作分开,真是设计了一套够复杂的系统呢。。 本帖最后由 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)
对,太坑了,都这么多年过去了,我还差点栽倒在里面
页:
[1]