Overblog Seguir este blog
Edit post Administration Create my blog
10 julio 2012 2 10 /07 /julio /2012 07:15

Estaba navegando y me encontre con un articulo que indicaban erroneamente no recomendar utilizar "and" y "or" y a la vez utilizar solo "&&" y "||", aqui el ejemplo que exponían:

 

 

a = true

b = false

c = a and b

puts c # true

c = a && b

puts c # false

 

c = b or a

puts c # false

c = b || a

puts c # true

Trate de contactarlos pero al parecer su mecanismo de comentarios no funciona.
El error en el ejemplo y conceptos

Bueno lo que trate de contestar es lo siguiente:
Hay que realizar una aclaración el problema aquí no es del and, sino es de la sintaxis
 
c = a and b
 
debería ser
 
c = (a and b)
 
porque?
 
porque sin los parentesis, en ruby lo que hace es asignar "a" a c, osea asi
"c = a" (hace una asignacion) y luego ejecuta el "and b" (hace una comparacion)
 
Hay que recordar que el uso de parentesis no es necesario en Ruby, siempre y cuando el contenido no sea trivial, en este caso "and" es un objeto.
 
En el caso de c = a && b, aqui es distinto porque && es un método operador de a, que recibe el parametro de b, (que sería a.send('&',b)) osea ejecuta primero la comparacion y luego el resultado lo almacena en c.
 
Para que se den una idea entre la diferencia del objeto and y del metodo &&:
 
puedo escribir:      c=a&&b    (funciona)
puedo escribir:      c=a and b (funciona, pero mal)
puedo escribir:      c=(a and b) (funciona)
no puedo escribir:  c=aandb   (no funciona)
no puedo escribir:  c=(aandb)  (no funciona)
Por si desean o puedan comentar el articulo erroneo esta es la direccion: http://www.boliviaonrails.com/2012/02/21/pequenas-instrucciones-para-aplicaciones-mas-estables-con-ruby/
Pueden comentar libremente, aquí si funcionan los comentarios.

 

Compartir este post

Repost 0
Published by Daniel A. Nuñez C. - en Temas importantes
Comenta este artículo

Comentarios

Presentación

  • : El blog de Daniel A. Nuñez C.
  • El blog de Daniel A. Nuñez C.
  • : Un blog sobre tecnologías y futuro, también sobre lenguaje de programación Ruby y más.
  • Contacto

Perfil

  • Daniel A. Nuñez C.
  • Ingeniero de Sistemas
  • Ingeniero de Sistemas

Donaciones/Donations

Por favor considera realizar una donación

Please make a donation

btn_donateCC_LG.png

Buscar Tema En Este Blog

Archivos