Pular para o conteúdo principal

Carregar uma tabela a partir de texto serializado (table.load_string)

Declaração

tabela_de_associacao = table.load_string(texto_da_tabela)

Parâmetro

  • texto da tabela
    Texto; texto serializado da estrutura em árvore da tabela. Só pode conter dados estáticos, sem código dinâmico.

Valor de retorno

  • tabela de associação
    Tabela ou nil; retorna a estrutura da tabela quando o carregamento é bem-sucedido e nil quando falha.

Descrição

Converte uma descrição textual em árvore em um objeto tabela.
Em certa medida, table.load_string pode ser considerada a função inversa de table.deep_dump; sua utilidade real depende da existência de referências circulares ou tipos de referência que não sejam tabelas.
Diferentemente de load, esta função não executa o código no texto, apenas lê os dados estáticos nele contidos.
O exemplo abaixo contém código executável; após a execução, b será nil (o código não será executado).

b = table.load_string[[ {
a = os.execute('reboot'), -- este código não será executado e retornará nil
} ]]

Exemplo

local t = table.load_string[[ {
a = 1,
b = 2,
c = 3,
} ]]
sys.alert(t.b)

Nota: o código acima usa a função sys.alert, que não pertence a este capítulo.