В KRL я могу иметь постоянную переменную обратного отсчета, а не вверх? - PullRequest
4 голосов
/ 15 января 2011

Я хочу, чтобы переменная приложения отсчитывала вверх, а не вверх.В постлюде одного правила я поместил следующее:

fired {
  app:pies -= 1 from 10;
}

Переменная app:pies будет считать от 10 до 1, но никогда не достигнет нуля.Мне нужно перестать раздавать пироги, когда у меня кончится.Почему переменная никогда не достигает нуля?Есть ли лучший способ сделать это?

1 Ответ

4 голосов
/ 15 января 2011

Кажется, что уменьшение переменной приложения никогда не приведет к тому, что она опустится ниже 1. Я понятия не имею, почему это так. Вы можете сделать переменные приложения меньше 1. Этот код, например, начинает переменную с -2 и увеличивает ее оттуда, что прекрасно работает:

app:test += 1 from -2;

Кажется, что снижение не работает ...

Я бы предложил просто изменить количество на 1, чтобы вы притворились, что 1 означает 0. В этом случае ваше приложение может выглядеть так:

rule morePies {
  select when web pageview ".*"

  if (app:pies > 1) then {
    notify("You get a pie", "Yay!");
  }

  fired {
    app:pies -= 1 from 11;
  } 
}

rules piesAreGone {
  select when web pageview ".*"

  if (app:pies <= 1) then {
    notify("No pies left", "Sorry.");
  }
}
...