rule "Using the and conditional"
when
Cheese(cheeseType : type) and
Person(favoriteCheese == cheeseType)
then
复杂规则编写
Table of Contents
条件元素
元素 | 说明 |
---|---|
and |
LHS 有多个 Fact 且所有条件都满足,如果 LHS 只包含 and,则 and 可以省略. |
or |
LHS 有多个 Fact,只需任意一个条件满足.
|
eval |
语义元素,用来包装布尔型变量,例如
|
exists |
判断特定 Fact 是否存在.
|
not |
特定 Fact 不存在存在
|
from |
用于 Fact 之间的关联。
|
forall |
是否所有 Fact 满足判断条件
|
collect |
处理集合,支持的集成类型包括: ArrayList, LinkedList, HashSet
|
accumulate |
对 collect 的加强,增加遍历,反转等功能
|
比较运算符
名称 | 说明 |
---|---|
<, ⇐, >, >=, ==, =, != |
数学比较运算符
|
matches |
规则中引用正则表达式
|
soundslike |
类似于 ==
|
contains |
集合或数组中是否存在某元素
|
in |
某元素是否在某元素集中
|
memberOf |
是否是集合或数组中的元素
|
两种 dialect 的比较
比较项 | Java | MVEL |
---|---|---|
Property access |
|
|
Collection and map access |
|
|
Property assignment |
|
|