11 de set. de 2009

Lua - Tables

Dando continuidade ao nosso tutorial de Lua, hoje falaremos de Tables.

Tables são estruturas multidimensionais que permitem o armazenamento de dados diversos.

Sua declaração é semelhante a de variáveis.

local tabela = { }

O acesso a estes valores na table é feito a partir da utilização de colchetes.

local tabela = { }
tabela[1] = ‘Carro
tabela[2] = ‘Moto
local variavel = tabela[1]
print(variavel)

Uma outra forma de atribuir valores a uma table é durante a sua declaração.

local tabela = {‘Carro’ , ’Moto’ , 3.14}

Funções Básicas

table.concat()

Concatena os ítens da tabela.

local tabela = {'amarelo','azul','vermelho'}
local var = table.concat(tabela)
print(var)

table.insert()

Insere um valor na tabela.

local tabela = {'amarelo','azul','vermelho'}
table.insert(tabela,'verde')
print(tabela[4])

É possível ainda, incluir o valor em uma posição determinada da tabela.

local tabela = {'amarelo','azul','vermelho'}
print(tabela[1])
table.insert(tabela,1,'laranja')
print(tabela[1])
print(tabela[2])

Você pode ver que um novo texto foi incluído na primeira posição da table. O texto que originalmente estava na primeira posição passou a segunda posição.

table.maxn()

Retorna o maior índice numérico positivo da tabela. Caso a tabela não possua índice positivo, será retornado zero.

local tabela = {'amarelo','azul','vermelho'}
print(table.maxn(tabela))

table.remove()

Revome da table o último elemento.

local tabela = {'amarelo','azul','vermelho'}
table.remove(tabela)
for i=1, table.maxn(tabela) do
print(tabela[i])
end

É possível ainda informar qual o índice do elemento que deverá ser removido.

local tabela = {'amarelo','azul','vermelho'}
table.remove(tabela,2)
for i=1, table.maxn(tabela) do print(tabela[i])
end

No exemplo anterior, removemos o segundo elemento da table.

table.sort()

Ordena os elementos da table

local tabela = {'verde','amarelo','azul','vermelho'}
table.sort(tabela)
for i=1, table.maxn(tabela) do
print
(tabela[i])
end

Algumas destas funções permitem a inclusão de outros parâmetros, aumentando a gama de opções, no entanto, iremos no restringir ao básico para desenvolvimento.

No próximo post, falaremos sobre operadores.

Para saber mais:

Lua - Variáveis e Estruturas de Controle

Manual de Referência de Lua - Table

Nenhum comentário: