Ir para conteúdo
  • 0

kttallan

Pergunta

Então galera, estou com uma duvida relacionada a essa tabela hoje mais cedo eu consegui printar todos valores da sub-tabela (testando), porém fui tentar novamente e não consegui o valor da tabela estava nulo.

Alguém pode me explicar o do porquê?

Eu lembro que usei dois for.

algo como.

for _, array in pairs(config.testando) do   for i = 1, #array do      print(i)endend

TABELA \/

local config = {[1] = {testando = {4564, 87942}, name = "Allan"},[2] = {testando = {123, 4356}, name = "Wagner"}}

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Vamos lá. 

 

Essa aqui é sua tabela. 

4 horas atrás, kttallan disse:

local config = { [1] = {testando = {4564, 87942}, name = "Allan"}, [2] = {testando = {123, 4356}, name = "Wagner"} }

 

Veja que não existe dentro dela os índices  (entre colchetes) da palavra "testando".

 

Endereço:

Citar

config = { -- tabela

[1] = {} -- index numérico 

variavel1 = true -- index alfanumérico.

}

 

Nesse caso nós temos duas implementações na tabela, uma numérica e uma alfanumérica. Caso eu queira pegar o que esteja associado ao index, eu preciso "dizer" ao sistema o "caminho" de onde ele se encontra.

 

Citar

config [1]

config [variavel1]

Cada uma irá buscar na mesma tabela, dados associados ao seu respectivos index.

 

Basicamente tu cometesse um erro na ora de "dizer" o caminho dos dados que tu queira pegar com o código. 

4 horas atrás, kttallan disse:

pairs(config.testando)

 

Espero que tenha entendido.

Link para o comentário
Compartilhar em outros sites

  • 0
3 horas atrás, kttallan disse:

Então galera, estou com uma duvida relacionada a essa tabela hoje mais cedo eu consegui printar todos valores da sub-tabela (testando), porém fui tentar novamente e não consegui o valor da tabela estava nulo.

Alguém pode me explicar o do porquê?

Eu lembro que usei dois for.

algo como.

for _, array in pairs(config.testando) do   for i = 1, #array do      print(i)endend

TABELA \/

local config = {[1] = {testando = {4564, 87942}, name = "Allan"},[2] = {testando = {123, 4356}, name = "Wagner"}}

 

 

primeiro que dentro dos parêntesis você colocou um valor "nulo", pairs(config.testando), o correto seria :  pairs(config), o for vai pegar os valores da tabela config, dentro do for que vc chama a tabela 'testando' (que está dentro da tabela 'config'). 

 

Vamos lá..

 

 

local config = {[1] = {testando = {4564, 87942}, name = "Allan"},[2] = {testando = {123, 4356}, name = "Wagner"}}for _, array in pairs(config) do --[[nesse cado o _ armazena os index, que são os valores que estão em [] na tabela, \/]]--    print(_)		--[[ quando não definido, por padrão é 1, 2, 3.., ou seja o resultado do print será 1 e 2 (neste caso)]]--end--resultado do print> 1--resultado do print> 2------------------------------------------------------------local config = {[1] = {testando = {4564, 87942}, name = "Allan"},[2] = {testando = {123, 4356}, name = "Wagner"}}for _, array in pairs(config) do --[[o array armazena os valores contido no index ( [1] = ARRAY ), nesse caso, \/ ]]--    print(array)		--[[em cada index temos uma tabela ( [1] = {...}, [2] = {...} )]]--end--resultado do print> table: 0x21a4f00--resultado do print> table: 0x21a2f80---------------------------------------------------------------[[ para chamar valores que estão dentro de uma variavel basta usar 'array.variavel' EX: ]]--local config = {[1] = {testando = {4564, 87942}, name = "Allan"},[2] = {testando = {123, 4356}, name = "Wagner"}}for _, array in pairs(config) do	print(array.name)end--resultado do print> Allan--resultado do print> Wagner----------------------------------------------------------------[[ Ahhhhh, então basta usar 'array.testando' que eu vou ter os valores da tabela 'testando' que esta dentro da tabela 'config' ?!..tecnicamente sim, vc vai chamar a tabela, mas não terá os valores que estão dentro, a não ser que vc precise apenas da tabela,como no caso de Position.. vamos na pratica]]--print(array.testando)>> table: 0x7e10e0   -- o print te dá as tabela, mas não te mostra oq tem dentro..>> table: 0x7e0eb0-- as regras para operar uma tabela dentro do for não mudam.. -- se quer chamar um valor especifico use NomeDaTabela[index] (testando[1])print(array.testando[1])>> 4564>> 123print(array.testando[2])>> 87942>> 4356-------------------------------------------------Para printar tudo que está dentro da tabela testando basta usar outro for--assim como você imaginou, porém vc pegou o tamanho do array (#array), o correto seria #array.testando--vamos para a praticalocal config = {[1] = {testando = {4564, 87942}, name = "Allan"},[2] = {testando = {123, 4356}, name = "Wagner"}}for _, array in pairs(config) do  for i = 1, #array.testando do -- de 1 a 2(temos 2 valores em cada tabela 'testando')	print(array.testando[i]) -- printa array.testando[1] e array.testando[2]  endend>> 123>> 4356>> 4564>> 87942

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...