亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Drools:同一案例的規則觸發兩次

Drools:同一案例的規則觸發兩次

蠱毒傳說 2022-06-04 15:35:29
盡管只有一個匹配案例,但此規則會觸發兩次。我使用 Drools 6.5.0。最后。查看日志,在第二輪中將 $card2 作為 $card1,反之亦然。rule "Rule1"salience 1when  $card1 : (used == false)  $card2 : (used == false, number = $card1.number)  exists Hand(name == name1)  exists Hand(name == name2 || name == name3)  not Hand(name == name4)then    $card1.setUsed(true); $card2.setUsed(true);    insert(new Hand(name1, $card1, $card2));end
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

規則的無循環屬性確保在 then 語句中發生 when 條件中使用的相同對象的更新/修改時不會重新觸發相同的規則。

定義無循環的方法如下:

rule "Rule1"
no-loop true


查看完整回答
反對 回復 2022-06-04
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

首先,您的規則對我來說看起來不正確。前兩個模式缺少它們的類型,并且有一些變量(即name1)不是來自任何地方。

其次,請記住 Drools 中規則的 LHS 有點像 SQL 語句。如果您未指定模式之間的任何關系,則將使用它們的笛卡爾積。

希望能幫助到你


查看完整回答
反對 回復 2022-06-04
  • 2 回答
  • 0 關注
  • 325 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號