こんにちは私は次のルールがDroolsでどのように解釈されるのか知りたいです
rule "test"
when
condiction A
or
condiction B
condiction C
then something
end
それは...ですか
(AまたはB)およびC
Aまたは(BおよびC)
2つのルールになります:a)。AおよびCb)。BとC
2つのルールになります:a)。a b)。BとC
ありがとうございました
Drools の演算子の優先順位は (大部分) Java 演算子の優先順位に従います。AND (&) は OR (|) の前に評価され、OR (|) は論理 AND (&&) の前に評価され、 OR は論理OR (||) の前に評価されます。
演算子の優先順位 ----> & | && ||
Droolsは括弧を使用した明示的なオペランドのグループ化をサポートしているため、疑わしい場合はそれらを使用してください。そのまま、あなたの例では、評価順序は #2 に対応します。
A または (B および C)
この順序付けは、グループ化に基づいて 2 つのルールにコンパイルされます。
A
B and C
モデルによっては、これらのルールのいずれかが有効になる場合があります。
これはすべて、強く推奨されるDrools のドキュメントで説明されています。