此内容没有您所选择的语言版本。
Chapter 16. Patterns
16.1. Patterns 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
A pattern element is the most important Conditional Element. It can potentially match on each fact that is inserted in the working memory. A pattern contains constraints and has an optional pattern binding.
16.2. Pattern Example 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
This is what a pattern looks like:
rule "2 unconnected patterns"
when
Pattern1()
Pattern2()
then
... // actions
end
// The above rule is internally rewritten as:
rule "2 and connected patterns"
when
Pattern1()
and Pattern2()
then
... // actions
end
Note
An
and cannot have a leading declaration binding. This is because a declaration can only reference a single fact at a time, and when the and is satisfied it matches both facts.
16.3. Pattern Matching 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
A pattern matches against a fact of the given type. The type need not be the actual class of some fact object. Patterns may refer to superclasses or even interfaces, thereby potentially matching facts from many different classes. The constraints are defined inside parentheses.
16.4. Pattern Binding 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Patterns can be bound to a matching object. This is accomplished using a pattern binding variable such as
$p.
16.5. Pattern Binding with Variable Example 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
This is what pattern binding using a variable looks like:
rule ...
when
$p : Person()
then
System.out.println( "Person " + $p );
end
Note
The prefixed dollar symbol (
$) is not mandatory.
16.6. Constraints 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
A constraint is an expression that returns
true or false. For example, you can have a constraint that states five is smaller than six.