その部分を理解するのに苦労していvalue : value == 0
ますか?このコードはどのように機能しますか?
rule "My rule"
when
m : MyClass( value : value == 0)
then
end
その部分を理解するのに苦労していvalue : value == 0
ますか?このコードはどのように機能しますか?
rule "My rule"
when
m : MyClass( value : value == 0)
then
end
Drools 5.4以降のスナップショットを使用していると仮定すると、任意のブール式を制約として記述できます。したがってvalue == 0
、「value」がMyClassのフィールド名である制約も同様です。
Droolsでは、次のように「:」を使用して属性を変数名にバインドすることもできます。
<variable_name> : <fieldName>
だから、あなたは書くことができます:
MyClass( $var : value == 0)
最後に、Droolsは「コンテキスト認識」パーサーを使用するため、属性名と同じ名前の変数を使用できます。これは、Droolsが:の前にあるものがフィールドではなく変数名であることを認識しているためです。したがって、この例では、変数「value」は属性「value」にバインドされ、value属性が0に等しい場合、制約「value==0」はtrueになります。
それが役に立てば幸い。