Adicionando e Lendo Elementos
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 14 de 80.
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 agora o Luau verifica o que você insere: inserir uma string em um array {number} é sinalizado enquanto você digita, em vez de ser descoberto por um jogador confuso durante a execução.
local queue: {string} = {"save", "load"}
table.insert(queue, "quit") -- adiciona ao final
table.insert(queue, 1, "help") -- insere na posição 1, deslocando os demais elementos
local last = table.remove(queue) -- remove E retorna o último elementotable.remove(t) remove o último elemento e o devolve para você; table.remove(t, 1) remove o primeiro e desloca todos os elementos seguintes. Como o array é tipado como {string}, o Luau sabe que o valor retornado é uma string.
A leitura é tão permissiva quanto no Lua puro: um índice sem valor, queue[0], queue[-1] ou qualquer índice além de #queue é avaliado silenciosamente como nil. Nenhum erro é gerado, então verifique se o valor é nil antes de usá-lo, caso não tenha certeza de que ele existe.
Desafio
FácilAumente e diminua uma lista tipada de movimentos.
- Declare
local moves: {string} = {"jump", "run"}. - Acrescente
"duck"comtable.inserte, em seguida, insira"crawl"na posição 1. - Armazene
table.remove(moves)emlocal removede, em seguida, imprimaremoved,#moves,moves[1]emoves[10].
Pressione Executar código: a saída mostra duck, 3, crawl e nil.
Experimente você mesmo
-- 1) declare moves: {string} com "jump" e "run"
-- 2) adicione "duck" ao final e insira "crawl" na posição 1
-- 3) remova o último movimento e, em seguida, imprima os quatro valores
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
Tipagem de parâmetros e valores de retornoTipagem de funções anônimasFunções sem retornoParâmetros opcionaisValores padrão dos parâmetrosValores padrão para booleanosFunções variádicasDefinindo tipos de funçãoRecapitulação: funções tipadas2Tipos básicos
Número, string e booleanoO tipo 'any': válvula de escapeO tipo 'unknown'Tipos nulos e opcionaisInferência de tipos na práticaAnotações explícitas de tipoRevisão: prática com tipos básicos5Aliases, 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 MapsPercorrendo TabelasTabelas com Formatos MistosLendo uma GradeConstruindo uma Gradetable.unpackRevisão: Arrays e MapsPratique por conta própria: Compilador de Luau online