Bienvenidos sean a este post, hoy comenzaremos a hablar sobre la libreria encargada de manejar las tablas.

Anuncios

Esta provee varios tipos de funciones para poder realizar las tareas sobre las mismas y hacerlas trabajar como arrays, en el post de hoy nos centraremos en las funciones encargadas de insertar (insert) y remover (remove) elementos de las tablas.

Anuncios

La funcion table.insert inserta un elemento en la posicion informada de un array, moviendo otros elementos a espacios vacios, tomemos este ejemplo:

t = { 10, 20, 30 }
Anuncios

Si a este array le aplicamos la siguiente funcion:

table.insert(t, 1, 15)
Anuncios

El array se transformara en este:

{ 15, 10, 20, 30 }
Anuncios

Como un caso especial (y frecuente) si llamamos a insert sin una posicion este inserta el elemento en la ultima posicion del array, ademas no mueve elementos, veamos el siguiente codigo:

t = {}
for linea in io.linea() do
	table.insert(t, linea)
end
print(#t)
Anuncios

Este codigo lee la entrada del programa linea por linea y almacena todas estas lineas en un array.

Nota: En Lua 5.0 este idioma era mas comun, a partir de Lua 5.1 muchos prefieren el idioma t[#t + 1] = linea para agregar elementos de una lista.
Anuncios

La funcion table.remove remueve (y devuelve) un valor de una posicion informada en un array, moviendo hacia abajo otros elementos para cerrar espacio, cuando es llamado sin una posicion este remueve el ultimo elemento del array.

Anuncios

Con estas dos funciones es mas sencillo para implementar pilas, queues y doble queues, podemos inicializar tales estructuras como t = {}, una operacion de empuje es equivalente a table.insert(t, x), una operacion de quitar (pop) es equivalente a table.remove(t), el llamado a table.insert(t,1,x) inserta al otro extremo de la estructura (en realidad en su comienzo), y la llamada table.remove(t,1) lo remueve desde este extremo, las dos ultimas funciones no son particularmente eficientes porque ellos deben mover elementos hacia arriba y abajo, sin embargo como la libreria table implementa estas funciones en C, estos bucles no son demasiados pesados asi que esta implementacion es buena para pequeños arrays.

Anuncios

En resumen, hoy hemos vistos las dos funciones encargadas de ingresar y sacar elementos de una tabla, un par de ejemplos simples, cuales son sus resultados, 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.

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00