我正在学习Java和Drools,以便我可以编辑现有的代码库,我已经遇到了一些语法,我相信只是分配一个变量/对象,但我不确定,而且我不知道。在我错误地应用并依赖它之前,我会欣赏一些清晰度和洞察力。
RULE "Rule1"
WHEN
result : Result()
policy : Policy()
THEN
logger.info("Running Rule1");
retract(result);
END
" xxx:xxx()"我不确定... 我尝试搜索,但我最终得到静态声明等
与" xxx = new xxx();"相同或" xxx:xxx();" ?
我以前的编码经验是PHP和C#,谢谢。
答案 0 :(得分:0)
模式元素是最重要的条件元素。它可能会匹配插入工作内存的每个事实。
模式包含零个或多个约束,并具有可选的模式绑定。
[ patternBinding :] 模式类型 ( [约束] )强>
在最简单的形式中,没有约束,模式与给定类型的事实匹配。在以下情况中,类型为Person,这意味着模式将与工作内存中的所有Person对象匹配:
Person()
要引用匹配的对象,请使用模式绑定变量,例如$ p。 ('$'不是强制性的,只是一种惯例。)
$p: Person()
属性可以绑定到变量:
Person( $firstAge : age ) // binding
请注意,“绑定”不是“分配”; “绑定变量”不是“变量”,因为它在C#或PHP中是已知的。