在jess中,从规则返回字符串的方式就是:
(defrule welcome-toddlers
"Give a special greeting to young children"
(person {age < 3})
=>
(printout t "Hello, little one!" crlf))
我的问题是如何实现return函数,这就是我想要的:
(defrule welcome-toddlers
"Give a special greeting to young children"
(person {age < 3})
=>
(return "Hello, little one!"))
如果不可能,怎么做drools?
答案 0 :(得分:4)
规则不像函数一样被调用 - 所以你的问题没有意义。由于工作记忆中发生的事情,规则会以某种(显然)随机顺序触发 - 所以那些规则中的字符串应该去哪里? (run)
函数(fireAllRules
方法)只返回已触发的规则数量,以及那些规则。
你想从欢迎幼儿那里得到那个字符串?必须选择一种方法,即将在规则中创建的数据传递到应用程序中的该点。这里有一些受欢迎的选项:
greeting
并将其存储在那里。 (注意不要造成无休止的循环。)除了术语上的一些不同之外,它在Drools中也是一样的。
两个系统都有文档,您可以在其中找到此问题和其他问题的所有详细信息。