rescue true

21 noviembre, 2010

Ruby: Diferencias entre “and” y “&&”, “or” y “||”

Archivado en: Ruby,Tips&Tricks — xurdekio @ 12:43 pm
Tags: , ,

Hace unos días me preguntaban por la diferencia en ruby sobre los operadores en sus diferentes formas, esto es and Vs. && y or Vs. ||.
Mucha gente piensa que uno de los dos no sigue los atajos de los circuitos lógicos, sin embargo esto es falso. Las dos formas son igual de eficientes a la hora de evaluarse, es decir, en caso de and y && si la primera condición es falsa no se evalua la segunda, y en caso de or y || si la primera condición es verdadera no se evalua la segunda.
Ahora bien, la diferencia se encuentra en la preferencia de los operadores a la hora de evaluarse. && y || tienen mas preferencia que and y or. Para verlo claramente:

 a = false or true #=> true
 a #=> false

 a = false || true #=> true
 a #=> true

En el primer caso se evalua antes el operador =, con lo que a la variable a se le asigna el valor false. Sin embargo el resultado de la operación es true.
En el segundo caso se evalua primero el operador ||. La expresion devuelve true y a la variable a se le asigna el valor true.

Espero que haya quedado claro, para cualquier cosa.. los comentarios!

Tema Rubric. Blog de WordPress.com.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.