Drools:contains 和 memberof 之间的区别

Drools: difference between contains and memberof

我正在阅读 Drools 6.4.0 documentation。我不确定是否理解 containsmemberof 运算符之间的区别:两者都使用集合,似乎唯一的区别是 contains 期望右侧包含的对象虽然 memberof 期望它在左侧,所以它们是等效的,但恐怕我遗漏了一些东西。

这个例子摘自 Laune 对 :

rule "ruleY"
when
    Data( $los: listOfStrings )
    MyObject( string memberOf $los ) 
then
    //do stuff
end
rule "ruleY"
when
    MyObject( $s: string ) 
    Data( listOfStrings contains $s )
then
    //do stuff
end

它们是互补的。根据您拥有的数据和最合乎逻辑的表达方式使用其中一种。