ruby - синтаксическая ошибка, неожиданное tOP_ASGN, ожидание ')' для if (id == 53 или id == 54) - PullRequest
0 голосов
/ 03 февраля 2012

у меня есть:

 if id == 53 or id == 54 

Я пытался

if id == 53 || 54

но результаты неверны, так как это всегда верно.

Ответы [ 2 ]

3 голосов
/ 03 февраля 2012

Это работает:

if [53,54].include? id
  #do stuff
end
0 голосов
/ 03 февраля 2012

Это проблема приоритета оператора. Оператор == имеет более высокий приоритет, чем ||.

от irb:

1 == 2 or 1 == 3
=> false

1 == 2 or 3
=> 2 (which evaluates in an expression as true)

Если мы поиграем с вашим исходным кодом:

id = 7
id == 53 or id == 54
=> false
id == 53 || 54
=> 55 (which would evaluate to true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...