Bienvenidos sean a este post, hoy hablaremos sobre asignaciones pero que son las asignaciones? Simplemente es la accion de cambiar el valor a una variable, veamos algunos ejemplos:

Anuncios
a = "Hola, " .. "Mundo!"
t.n = t.n + 1

Lua acepta multiples asignaciones donde a una lista de variables se le asigna una lista de valores, en ambos casos estan separados por comas y obviamente y la cantidad debe ser la misma, veamos un ejemplo:

a, b = 10, 2*x

La variable a obtiene el valor de 10 y la variable b obtiene el producto de x multiplicado por 2, en multiple asignaciones el lenguaje evalua todos los valores y luego procede con la ejecucion de las asignaciones, otra utilidad muy importante es el intercambio de valores como se ve en el siguiente ejemplo:

x, y = y, z			<==>	Intercambia el valor de x por y
a[i], a[j] = a[j], a[i]		<==>	Intercambia el valor de a[i] por a[j]

Antes dijimos que la lista de valores y variables debia ser la misma pero en caso de no cumplirse esta condicion Lua no devuelve un error sino que asigna el valor nil a las variables extras que no poseen un valor para ser asignado, en el caso contrario, es decir que las variables sean menor cantidad a los valores, los descartados son los valores pero el usuario en ningun de los dos casos se enterara ante esta eventualidad, veamos algunos casos:

tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3
Lua 5.3.3  Copyright (C) 1994-2016 Lua.org, PUC-Rio
> a, b, c = 0, 1
> print(a,b,c)
0       1       nil
> a, b = a+1, b+1, b+2
> print(a,b)
1       2
> a, b, c = 0
> print(a,b,c)
0       nil     nil
>
Anuncios

Veamos lo que hablamos antes, en el primer caso tenemos tres variables y dos valores, observen que al mostrarlo tenemos a las variables a y b con valores y c con un valor nil, en el siguiente caso tendremos dos variables y tres valores, si mostramos los dos valores se mostraron correctamente y se ignoro completamente al tercer valor, b+2, por ultimo tendremos un ultimo ejemplo con tres variables y un solo valor, si lo mostramos veremos que la primer variable tiene el valor y el resto se les asigno el valor nil, en todos los casos no nos devolvio ningun error, aunque este ultimo caso es un error habitual y para inicializar un conjunto de variables se debe asignar un valor a cada uno.

Aunque actualmente se puede utilizar esta forma de asignar valores a variables pero no es un uso muy comun sino que puede usarse para eventualmente asignar valores en una sola linea, esta forma de asignar no es mas rapida que hacerlo de la manera habitual, tambien nos puede dificultar la visibilidad a la hora de hacer una depuracion de nuestro programa ante un error, ademas puede usarse para intercambiar valores entre variables pero en realidad su uso mas generalizado es la recoleccion de multiples resultados en una funcion pero sobre esto hablaremos mas adelante.

Anuncios

En resumen, hoy hemos visto asignaciones de valores a variables, otras formas de asignaciones, como intercambiar informacion, como trabaja la asignacion multiple y algunas descripciones que se pueden hacer con este tema, espero 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