Postado Março 12, 2017 8 anos Bom pessoal, to querendo entender toda a linguagem lua, sei que vai demorar, ja sei algumas coisas e no momento quero aprender sobre pairs e ipairs. Alguém experiente em scripting poderia me ajudar? Quero que criem algumas situações em que eu preciso usar pairs ou ipairs para resolver o caso, mas só me digam a resposta certa depois de eu postar o que eu achar que é. Pode ser? obs. não mandem situações dificeis, não sei usar isso ainda, então... obg gente, quero ter experiência com isso pra poder ajudar a comunidade futuramente, fixando códigos ou criando sistemas e eventos obg gente @xWhiteWolf @Fir3element @Vodkart @zipter98 Editado Março 12, 2017 8 anos por Sekk (veja o histórico de edições)
Postado Março 12, 2017 8 anos pairs = função next.. ela percorre toda a tabela independente dos dados ipairs = só percorre os pares de elementos numéricos. usar ipairs é semelhante ao usar for i = 1, #table do if not table[i] then break end -- código aqui end enquanto que o pairs itera sobre praticamente qualquer index: considera a tabela local table = { [1] = 1, [2] = 2, [3] = 3, [4] = nil [5] = 4, } Se eu usar ipairs e mandar printar ele vai printar 1, 2 e 3 mesmo tendo o 5 na tabela pq o 4 é nulo e ele cancela ali, O mesmo vale se os indexes forem strings. o pairs itera sobre qualquer coisa, ele printaria 1, 2, 3, 5 (4 não pq é nulo) porém o pairs utiliza uma função next e essa função não é determinística, ou seja, ele não vai retornar exatamente na ordem desejada, então toma cuidado quando usar pairs ou ipairs. Em geral pairs é muito util, mas precisa ter um cuidado especial ao utilizá-lo pq ele é bem mais complexo.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.