3

グローバルブロックに次のものがあります。

test = defaction(){
    if(5>10) then {
        notify("yes","yes");    
    }
}

次に、次のルールもあります。

rule tester {
    select when pageview ".*"
    test();
}

5が10を超えることはないため、通知が発生しないことを期待しています。ただし、すべてのページで実行されます。私はそれが正しいと感じていますが、私はそれを間違っていると確信しています。

4

1 に答える 1

2

述語(if (5>10) thenアクションブロックの一部ではないなど。したがって、述語をに含めるdefactionことは意味がありません。次のように記述する必要があります。

global {
    test = defaction(){
        notify("yes","yes");    
    }
}

rule tester {
    select when pageview ".*" setting ()
    if (5>10) then {
        test();
    }
}

コンストラクトはif...then、たとえばコンストラクトと同じ機能を果たしeveryます。つまり、アクションブロックをラップします。

于 2011-03-29T13:44:58.883 に答える