1.双向约束强调的是各个约束块之间执行的过程是并行的,也就是最终的结果是A约束块和B约束块综合出来的结果。
2.->强调的是前后两个值之间的约束关系,比如:
(x == 0) -> (y == 0);//x=0,1;y = 0,1,2,3
(1)当x = 0的时候y一定为0;(2)当x != 0的时候,y的值随意;(3)当y == 0的时候,x值是随意的;(4)当 y != 0的时候,x一定不为0;
总结就是x为0的时候y一定为0
需要注意的是,->和if==约束中使用if else语句看起来似乎是有先后条件的,但是实际上他仍然是并行执行的,也就是x和y的值是同时确定的,但是在确定的时候是需要满足约束的
3.solve before在->的基础上会增加随机的先后条件,比如solve a before b表示的是先确定了a,再来确定b
使用solve before不能是randc型,且变量需要是整数值