Me sorprende que Ruby 1.9 (JRuby 1.6.6 (RUBY_VERSION == "1.9.2") y Ruby 1.9.3-p125) den un error de sintaxis para puts(true and false)
.¿Por qué Ruby 1.9.2 da un error de sintaxis para: puts (true y false)?
No sé por qué, ¿cuál es el problema aquí? ¿Cómo escribiría esa pieza de código correctamente? puts(true && false)
funciona, pero ¿hay alguna solución con and
?
Ejemplo sesión de IRB:
1.9.3p125 :001 > puts(true and false)
SyntaxError: (irb):1: syntax error, unexpected keyword_and, expecting ')'
puts(true and false)
^
from /home/fr/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>'
1.9.3p125 :002 > puts(true && false)
false
=> nil
Gracias a Mladen Jablanović para simplificar el ejemplo. El ejemplo anterior era f(true and f(false))
.
Tome un vistazo a http://stackoverflow.com/questions/1426826/difference-between-and-and-in-ruby – Thilo
ejemplo simplificado sería 'puts (verdadero y falso)' –
Gracias @Thilo y @Mladen. Conozco la precedencia del operador, pero para mí eso no explica el fenómeno. Gracias por el ejemplo 'puts', eso es mucho más simple. –