0

嗨,我想知道如何在 Drools 中解释以下规则

rule "test"
when
    condiction A
    or
    condiction B
    condiction C
then something
end

是吗

  1. (A 或 B)和 C

  2. A 或(B 和 C)

  3. 变成两条规则:a)。A 和 C b)。乙和丙

  4. 变成两条规则:a)。乙)。乙和丙

谢谢

4

1 回答 1

2

Drools 中的运算符优先级(很大程度上)遵循 Java 运算符优先级。与(&) 在ors (|) 之前求值,在逻辑与 (&&) 之前求值,在逻辑 ors ( ||) 之前求值。

运算符优先级---->

& | && ||

请注意,Drools确实支持带括号的显式操作数分组,因此当有疑问时使用它们。照原样,在您的示例中,评估顺序对应于#2:

A 或(B 和 C)

然后根据分组将此排序编译为两条规则:

A
B and C

然后可能会激活这些规则中的任何一个,具体取决于您的模型。

所有这些都在强烈推荐的Drools 文档中进行了解释。

于 2012-12-17T13:01:10.487 回答