约束链接:对于对象内部的多个约束的链接,可以采用“&&”(and)、“||”(or)和“,”(and)来实现,表面上看“,”与“&&”具有相同的含义,但是有一点需要注意,“,”与
“&&”和“||”不能混合使用,也就是说有“&&”或者“||”出现的LHS当中,是不可以有“,”连接符出现的,反之亦然。
- 比较操作符:共计12种:
= < <= == != contains not contains membersof not membersof matches not matches
(1)Contains:比较操作符contains是用来检查一个Fact对象的某个字段(该字段要是一个Colletion或者是一个Array类型的对象)是否包含一个指定的对象。contains 只能用于对象的某个Colletction/Array类型的字段与另外一个值进行比较,作为比较的值可以是一个静态的值,也可以是一个变量(绑定变量或者一个global对象)
示例:
package test
rule “rule1”
when
$order:Order();
$customer:Customer(age >20,orders contains o r d e r ) ; t h e n S y s t e m . o u t . p r i n t l n ( order); then System.out.println( order);thenSystem.out.println(customer.getName());
end
(2)Not contains" 与contains相反
Member of:用来判断某个Fact对象的某个字段是否再一个集合(Collection/Array)当中,用法与contains有些类似,但也有不同,members of前端是某个数。
示例:
package test
global String[] orderNames;
rule “rules1”
when
o r d e r : O r d e r ( n a m e m e m b e r o f o r d e r N a m e s ) ; t h e n S y s t e m . o u t . p r i n t l n ( order:Order(name memberof orderNames); then System.out.println( order:Order(namememberoforderNames);thenSystem.out.println(order.getName());
End
- Not member of : 与memberof 作用相反。