嗨,我想知道如何在 Drools 中解释以下规则
rule "test"
when
condiction A
or
condiction B
condiction C
then something
end
是吗
(A 或 B)和 C
A 或(B 和 C)
变成两条规则:a)。A 和 C b)。乙和丙
变成两条规则:a)。乙)。乙和丙
谢谢
Drools 中的运算符优先级(很大程度上)遵循 Java 运算符优先级。与(&) 在ors (|) 之前求值,在逻辑与 (&&) 之前求值,在逻辑 ors ( ||) 之前求值。
运算符优先级----> & | && ||
请注意,Drools确实支持带括号的显式操作数分组,因此当有疑问时使用它们。照原样,在您的示例中,评估顺序对应于#2:
A 或(B 和 C)
然后根据分组将此排序编译为两条规则:
A
B and C
然后可能会激活这些规则中的任何一个,具体取决于您的模型。
所有这些都在强烈推荐的Drools 文档中进行了解释。