Adicionando e Lendo Elementos
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 14 de 73.
Você já aumenta e diminui tabelas Lua com table.insert e table.remove — ambos funcionam exatamente da mesma forma em arrays tipados. A diferença é que o Luau agora verifica o que você insere: adicionar uma string em um array {number} é sinalizado enquanto você digita, e não descoberto por um jogador confuso em tempo de execução.
local queue: {string} = {"save", "load"}
table.insert(queue, "quit") -- adiciona no final
table.insert(queue, 1, "help") -- insere na posição 1, deslocando o resto
local last = table.remove(queue) -- remove E retorna o último elementotable.remove(t) remove o último elemento e o retorna para você; table.remove(t, 1) remove o primeiro e desloca tudo para baixo. Como o array é tipado como {string}, o Luau sabe que o valor retornado é uma string.
A leitura é tão permissiva quanto em Lua puro: um índice que não contém nada — queue[0], queue[-1], ou qualquer coisa além de #queue — é avaliado silenciosamente como nil. Nenhum erro é lançado, então verifique se é nil antes de usar um valor que você não tem certeza se existe.
Mais uma ferramenta para o seu repertório: table.freeze(t) torna uma tabela somente leitura em tempo de execução — qualquer tentativa posterior de modificá-la lança um erro. É a solução do Luau para dados constantes (configuração, listas fixas de níveis) que nunca devem mudar após a criação.
Desafio
FácilCrie um array tipado queue: {string} inicializado com "save" e "load". Em seguida:
- adicione
"<code>quit" comtable.insert - insira
"<code>help" na posição 1 - remova o último comando com
table.remove, armazenando o valor retornado
Por fim, imprima, cada um em sua própria linha:
- o comando removido
- quantos comandos restam
- o primeiro comando na fila
queue[10]— um slot que não contém nada
Experimente você mesmo
-- Escreva o código aqui
-- 1) declare a fila: {string} com "save" e "load"
-- 2) anexe o texto exato das instruções, insira o texto exato das instruções na posição 1
-- 3) remova o último comando e então imprima os quatro valores
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Introdução ao Luau
1Começando com o Luau
O que é Luau?Por que usar Luau?Seu primeiro código em LuauVerificação de tipos e modos de erroRecapitulando: Introdução ao Luau4Trabalhando com Funções
Tipando Parâmetros e Valores de RetornoTipando Funções AnônimasFunções que Não Retornam NadaParâmetros OpcionaisValores Padrão para ParâmetrosFunções VariádicasDefinindo Tipos de FunçõesRecapitulação: Funções Tipadas2Tipos Fundamentais
Tipos Básicos: num, str, boolO Tipo 'any': Escape HatchO Tipo 'unknown'Tipos Nil e OpcionaisInferência de Tipos na PráticaAnotações Explícitas de TiposReciclagem: Prática de Tipos Fundamentais5Aliases, Uniões, Interseções
Aliases de Tipos para PrimitivosTipos de UniãoTrabalhando com Tipos de UniãoTipos LiteraisTipos de InterseçãoCombinando Aliases de TiposRecapitulando: Combinações Avançadas de Tipos3Tabelas Tipadas: Arrays e Maps
Arrays TipadosAdicionando e Lendo ElementosO que é um Tipo Map?Declarando e Acessando MapsIterando Sobre TabelasTabelas de Formato MistoArrays Tipados Multidimensionaistable.unpack e VarargsRecapitulando: Arrays e MapsPratique por conta própria: Compilador de Lua online