Jonas^ Posted August 29, 2018 Share Posted August 29, 2018 Olá pessoal, gostaria de tirar algumas dúvidas relacionadas a tabelas, não só a tabelas, mas como definições exemplos: Ex 01: Isso é: local infoMsgs = { A mesma coisa que isto: infoMsgs = { Fiz alguns testes, e a funciona ambos, gostaria de saber a diferença ( se tem ) entre local e somente a palavra definida na tabela outro exemplo de definição: Isto é: message = message:gsub("#%x%x%x%x%x%x","") A mesma coisa que isto: local message = message:gsub("#%x%x%x%x%x%x","") Ambos funcionam também, alguém pode me explicar ? Link to comment
Other Languages Moderators Lord Henry Posted August 30, 2018 Other Languages Moderators Share Posted August 30, 2018 (edited) addCommandHandler ("teste1", function () local numero1 = 1 if numero2 > 1 then -- Erro: Impossivel calcular nulo com 1. outputChatBox ("Olá") end end) addCommandHandler ("teste2", function () local numero2 = 2 if numero1 > 0 then -- Erro: Impossivel calcular nulo com 2. outputChatBox ("mundo.") end end) Local é usado para variáveis que devem ser usadas somente dentro do escopo em que foram criadas. Faça o seguinte teste: Crie 2 funções com um addCommandHandler diferente em cada uma delas. Dentro de cada função crie uma variável local com um valor diferente em cada uma. Tente usar a variável de uma função na outra função e perceba que ele vai dar erro como se a variável nem existisse. Também é possível fazer funções locais. Edited August 30, 2018 by Lord Henry 1 Link to comment
Gw8 Posted August 30, 2018 Share Posted August 30, 2018 A pergunta que voce tem que se fazer é .. eu preciso disso em mais algum lugar? se sim : não se usa local se não : usa local exemplo : voce tem um arquivo chamado "config.lua" e tem nele este codigo: config = { priceweapons = 5000, priceColete = 2000 } como voce vai usar isso em outros arquivos, entao esta tabela nao pode ser local, quando voce torna uma variavel local ela só é acessivel dentro daquele arquivo. cuidado tambem ao usar local dentro de funçoes exemplo: local info = {50,200,10} function execute() local info = {} end neste caso a funcao execute esta criando uma nova tabela dentro de seu escopo. local info = {50,200,10} function execute() info = {} end neste caso a funcao execute esta resetando a tabela info. Espero ter ajudado vlw '-' 1 Link to comment
Other Languages Moderators Lord Henry Posted August 30, 2018 Other Languages Moderators Share Posted August 30, 2018 (edited) Fiz esse exemplo pra ficar mais fácil. A variavelAzul também funciona dentro da área verde e da vermelha, mas a variavelVerde não funciona na área azul mas funciona na vermelha. E a variavelVermelha só funciona dentro do próprio escopo onde ela foi criada. A variável azul funciona em todo esse arquivo.lua, mas somente dentro dele. Se não fossem variáveis locais, elas funcionariam em qualquer lugar do seu script, inclusive fora deste arquivo.lua. Mas não funcionariam em scripts de lado oposto ao script de origem. (Se este arquivo.lua for client-side, elas não funcionam em arquivos server-side e nem vice-versa.) De forma resumida: As variáveis locais funcionam somente em seu escopo e nos escopos que estão dentro dele. Mas nunca funcionam fora de seu escopo. No caso da variavelAzul, que não está dentro de um escopo, ele funciona no script inteiro. -------------------------------------------------------------------- Esse é um dos principais motivos do porquê é importante indentar seu código (colocar os espaços no início das linhas), pois demarcam quais linhas pertencem a qual escopo, deixando o código muito mais fácil de interpretar e ler. Edited August 30, 2018 by Lord Henry 1 Link to comment
Jonas^ Posted August 30, 2018 Author Share Posted August 30, 2018 Vlw pessoal por sanar as minhas dúvidas Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now