1
我难以理解部分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
是一种约束,其中“值”是在MyClass的字段名称。
的Drools也允许你使用 “:” 将属性绑定到一个变量名,如:
<variable_name> : <fieldName>
所以,你可以写:
MyClass($var : value == 0)
最后,由于Drools的用途一个“上下文感知”的解析器,你可以拥有一个与属性名称相同的变量,因为Drools知道在:之前出现的是变量名,而不是字段。所以,在你的例子中:变量“值”将被绑定到属性“值”,并且如果值属性等于0,约束“值== 0”将为真。
希望它有帮助。