как пускает бесконечный цикл в одном правиле? - PullRequest
0 голосов
/ 04 декабря 2018

Я использую слюни, чтобы сделать некоторую логику, ДХО такой.У меня такой вопрос: когда я добавляю «rules: Rules ()», цикл будет сначала «молодым», пока не достигнет возраста 19 лет, но если я уберу «rules: Rules ()», он будет делать только один раз в молодом,Может кто-нибудь сказать мне, почему?

rule "young"
when
   rules:Rules() 
   person:Person(Person.age< 19) 
then
    person.age+=1
    System.out.println("young"); 
end

rule "adult"
when
   rules:Rules() 
   person:Person(Person.age>= 19) 
then
    person.age+=1
    System.out.println("adult"); 
end

1 Ответ

0 голосов
/ 08 декабря 2018

Вы должны использовать modify, чтобы Drools знал, что вы меняете состояние person.

rule "young-without-rules"
when
   $person: Person(age < 19) 
then
    modify ($person) {
       age = age+1
    }
    System.out.println("young"); 
end
...