Tamanho e ordenação
Conte e ordene sequências.
Tamanho e ordenação é uma aula grátis de Lua Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Lua Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Lua Academy inclui 4 aulas no total.
O operador de comprimento
O operador # retorna o número de itens de uma sequência.
Para uma tabela limpa, baseada em 1, com três elementos, #t é 3. O último item está no índice #t.
local list = {"a", "b", "c"}
print(#list)
print(list[#list])Comprimento em um laço
Use #t como limite superior de um laço numérico for para visitar cada índice.
Como as sequências são baseadas em 1, o intervalo é 1, #t.
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
endTabelas vazias
Uma sequência vazia tem comprimento 0.
Assim, #t == 0 é uma forma rápida de verificar se uma lista contém algum item.
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
endComprimento após alterações
Quando você adiciona ou remove itens com as funções de table, # é atualizado de acordo.
insert aumenta a contagem, e remove a reduz.
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)As lacunas interrompem o comprimento
# só é confiável para sequências sem lacunas. Uma lacuna pode tornar o resultado indefinido.
Prefira table.insert e table.remove para que # continue confiável.
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)Ordenação no próprio local
table.sort(t) reordena a sequência no próprio local, do menor para o maior por padrão.
Ele altera a tabela original em vez de retornar uma nova.
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])Ordenando cadeias de caracteres
As cadeias de caracteres são ordenadas alfabeticamente por padrão, comparando caractere por caractere.
Após a ordenação, o índice 1 contém o primeiro item da ordem.
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])Ordem decrescente
Transmita uma função de comparação para controlar a ordem. Retornar a > b ordena do maior para o menor.
A função decide se a deve vir antes de b.
local nums = {3, 1, 4, 2}
table.sort(nums, function(a, b)
return a > b
end)
print(nums[1], nums[2], nums[3], nums[4])Comparações personalizadas
Os comparadores permitem ordenar usando qualquer regra, como o comprimento das cadeias de caracteres em vez da ordem alfabética.
Abaixo, as palavras mais curtas aparecem primeiro.
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])Comprimento e ordenação
Combine as ferramentas: ordene uma lista e depois leia as extremidades pelas posições.
Após a ordenação crescente, o mínimo está no índice 1 e o máximo está no índice #t.
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])Ordene e depois percorra
Um fluxo comum: ordene a sequência e depois percorra-a com ipairs para imprimir os itens em ordem.
A ordenação reordena a mesma tabela baseada em 1, então a iteração segue a nova ordem.
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
endVerificação rápida
Lembre-se do que o operador de comprimento fornece.
Recapitulação
Você aprendeu que #t conta os itens de uma sequência sem lacunas, que o último item está em t[#t] e que table.sort reordena no próprio local, em ordem crescente por padrão ou usando um comparador personalizado.
Juntamente com insert, remove e ipairs, agora você pode gerenciar sequências Lua com confiança.
Perguntas Frequentes
A aula “Tamanho e ordenação” é grátis?
Sim — o texto completo de “Tamanho e ordenação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Lua Academy, atualize para CoddyKit PRO. O curso de Lua Academy inclui 4 aulas no total.
O que vou aprender em “Tamanho e ordenação”?
Conte e ordene sequências. Você pratica Lua Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Lua Academy?
Nenhuma experiência prévia é necessária. Lua Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Tamanho e ordenação”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Lua Academy?
Sim. Cada aula de Lua Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Vetores como tabelas
- Adicionando e removendo itens
- Iterando com ipairs
- Tamanho e ordenação