Menu
CoddyTech

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 elemento

table.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.

challenge icon

Desafio

Fácil

Aumente e diminua uma lista tipada de movimentos.

  1. Declare local moves: {string} = {"jump", "run"}.
  2. Acrescente "duck" com table.insert e, em seguida, insira "crawl" na posição 1.
  3. Armazene table.remove(moves) em local removed e, em seguida, imprima removed, #moves, moves[1] e moves[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

Pratique por conta própria: Compilador de Luau online