Выполнение кода, если три условия ложны - PullRequest
1 голос
/ 17 мая 2011

Я пытаюсь пропустить вычисление некоторых чисел, когда результатом будет попытка вставить NaN в БД.Мой код выглядит следующим образом:

unless @X = 0 || @Y = 0 || Z= 0 #Don't execute below code if any of the three values = 0
    #Do some stuff with @X, @Y and @Z
end

Я знаю, что X, Y и Z являются положительными целыми числами, как и должно быть, однако этот оператор не запускает блок кода в предложении exc.Я явно злоупотребляю ||оператор?

Ответы [ 3 ]

4 голосов
/ 17 мая 2011

Вы используете = оператор присваивания. Вы хотите использовать == оператор равенства. Ваш код должен выглядеть так:

unless @X == 0 || @Y == 0 || @Z == 0
...
end
2 голосов
/ 17 мая 2011

Для сравнения в предложении if или unless вы должны использовать двойное равенство (==), а не одно (= 1004 *).

0 голосов
/ 17 мая 2011

Особенно, если вы хотите сравнить с нулем, в ruby ​​есть встроенная команда, которая работает быстрее, чем == 0.

unless @x.zero? or @y.zero? or @z.zero?
  ...
end

Здесь вы можете использовать || или or.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...