Bienvenidos sean a este post, hoy hablaremos sobre otro de los operadores mas utilizados por nosotros especialmente en conjuncion con los vistos en el post anterior a la hora de utilizar condicionales, veamos los tres operadores que disponemos:

Anuncios
  • AND
  • OR
  • NOT

Estos operadores nos devolveran true o false dependiendo de cada uno de sus condiciones, por ejemplo el primero nos devolvera true solamente si los dos valores informados son verdaderos, en cambio el segundo si cualquiera de los dos valores es verdadero devolvera un true, cualquier otra situacion en estos dos operadores nos devuelve false, el NOT es un operador inversor, si el valor es true lo transforma en false y viceversa, estos operadores consideran a nil como false, veamos algunas casos:

print(4 and 5)		--> Devuelve 5
print(nil and 13)	--> Devuelve nil
print(false and 13)	--> Devuelve false
print(4 or 5)		--> Devuelve 4
print(false or 5)	--> Devuelve 5

En este caso podemos observar tambien como trabaja los operadores AND y OR, en el caso de AND si el primer valor es falso nos devolvera el primero de lo contrario nos devolvera el segundo, con el operador OR ocurre lo contrario porque nos devolvera el primer argumento si este no es falso, es decir verdadero, otra particularidad es que los dos primeros operadores nos permiten trabajar con evaluaciones cortas en los dos primeros valores, y en el caso de ser necesario evaluara un segundo operador, estas evaluaciones nos permite trabajar tranquilos libre de errores de ejecucion, una forma eficiente de x = x or v es similar a esta:

if not x then x = v end
Anuncios

Esto significa que x es seteado al valor de v cuando x no esta seteado, para nuestro siguiente caso tenemos a x > y, otra forma util del idioma es (a and b) or c, o podes hacer simplemente a and b or c porque AND tiene una mayor precedencia que OR, y esto equivaldria a la siguiente expresion de C:

a?b:c 

y suponiendo que b no es false, veamos el siguiente caso:

max = (x > y) and x or y

En este caso obtendremos el valor maximo entre x e y y lo almacenaremos en max, en este caso en particular de ser la primera expresion verdadera hara que AND resultara en su segunda expresion, lo cual devuelve un true (porque todo los datos son numeros), en cambio para OR resultara en el valor de la primera expresion (x), otra consideracion es que NOT nos devolvera a todos un estado true o false:

print(not nil)        --> true
print(not false)    --> true
print(not 0)        --> false
print(not not nil)    --> false
Anuncios

En resumen, hoy hemos visto los operadores logicos, su principal funcionamiento, como pueden ser utilizados, esoero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00