Passar um nome como index de uma table

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Passar um nome como index de uma table

Ícaro Pereira
Bom dia,

Minha dúvida é a seguinte:

Tenho as seguintes tables: BuildingsClass.sede.level, BuildingsClass.arte.level...
e por aí vai. 
Como posso passar um nome com uma única variável para ficar algo assim:

for i=1, #grpTables do
     BuildingsClass.nome.level
     ....
end

sendo que nome é passado como parâmetro da função onde se encontra esse código?
No Flash isso era possível de ser feito(não desse jeito é claro). Tentei o mesmo no Corona e não funcionou. 

Alguém pode ajudar?
Desde já obrigado!

--
Lua BR - http://groups.google.com/group/lua-br
---
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Passar um nome como index de uma table

Luiz Henrique de Figueiredo
> Tenho as seguintes
> tables: BuildingsClass.sede.level, BuildingsClass.arte.level...
> e por aí vai.
> Como posso passar um nome com uma única variável para ficar algo assim:
>
> for i=1, #grpTables do
>      BuildingsClass.nome.level
>      ....
> end

Tente
        BuildingsClass[nome]level

onde nome é "sede", "arte", etc..

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Passar um nome como index de uma table

Luiz Henrique de Figueiredo
> BuildingsClass[nome]level

O correto é BuildingsClass[nome].level

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Passar um nome como index de uma table

Ícaro Pereira
Obrigado Luiz! 
Vou tentar aqui!

Em 22 de dezembro de 2014 09:27, Luiz Henrique de Figueiredo <[hidden email]> escreveu:
>       BuildingsClass[nome]level

O correto é     BuildingsClass[nome].level

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/d/optout.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Passar um nome como index de uma table

Denis Dos Santos Silva
In reply to this post by Ícaro Pereira
Também tive alguns percalços no inicio testando tabelas no lua...
até "descobrir" essa função ala print_r() do php

espero que ajude

----
---- 1.lua
local function print_r (t, indent) -- alt version, abuse to http://richard.warburton.it
  local indent=indent or ''
  for key,value in pairs(t) do
    io.write(indent,'[',tostring(key),']') 
    if type(value)=="table" then io.write(':\n') print_r(value,indent..'\t')
    else io.write(' = ',tostring(value),'\n') end
  end
end

local mm = {
nome="carro", portas=4,
acessorios={vidro="sim", gps="sim", airbag="nao",
sensores={chuva="sim", pressao=0, gpstracker=1,
gpstrackerinfo={id = "0001", senha=123, modelo=3999}
}
},
motor=1.4
};

print_r(mm);

-- 1.lua



Em segunda-feira, 22 de dezembro de 2014 09h57min26s UTC-2, Ícaro Pereira escreveu:
Bom dia,

Minha dúvida é a seguinte:

Tenho as seguintes tables: BuildingsClass.sede.level, BuildingsClass.arte.level...
e por aí vai. 
Como posso passar um nome com uma única variável para ficar algo assim:

for i=1, #grpTables do
     BuildingsClass.nome.level
     ....
end

sendo que nome é passado como parâmetro da função onde se encontra esse código?
No Flash isso era possível de ser feito(não desse jeito é claro). Tentei o mesmo no Corona e não funcionou. 

Alguém pode ajudar?
Desde já obrigado!

--
Lua BR - http://groups.google.com/group/lua-br
---
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para mais opções, acesse https://groups.google.com/d/optout.