> Comecei ontem na linguagem lua , e comecei vendo alguns videos no youtube
> de como começar nesta linguagem, me mandaram instalar a lua 5.1.5,
> recomendam atualizar ?
Olá, Daniel.
Apesar de recomendar, para projetos novos, o uso de uma versão mais
nova, em face das mudanças que a linguagem sofreu entre as versões, há
pouco que se possa falar contra a versão 5.1 a ponto de dizer que ela
não deve utilizada, ainda mais se tratando de estudos. Voc* consegue
transpor muito do que aprende usando o 5.1 para versões posteriores.
O motivo por muitos tutoriais se guiarem por essa versão pode variar.
Alguns são mais antigos, outros (especificamente no Windows) usam o Lua
for Windows, que parou na versão 5.1, outros talvez estejam ensinando
Lua para uso embutido em algum programa que usa essa versão, enfim.
Isso dito, alguns pontos com os quais deve ficar atento, pois mudam
significativamente entre a 5.1 e as versões mais novas:
- conceito de ambientes
O conceito de ambientes muda bastante da versão 5.1 para 5.2 e
posteriores. Se antes, se usava as funções getfenv e setfenv para
definir ou identificar o ambiente (que era específico por função), a
partir de Lua 5.2, o ambiente é armazenado na tabela identificada por
_ENV, o qual dispensa funções específicas para o acesso, por ser uma
variável local externa.
Na API C também já não é possível acessar o ambiente a partir da versão
5.2.
- construção de módulos
Na versão 5.1, um mecanismo para construção de módulos (module) foi
criado. Porém depois, na 5.2 ele foi depreciado pois o uso do novo
conceito de ambientes já suporta a construção de módulos, sem
necessidade de um mecanismo específico para tal. A partir da versão 5.3
a função module é efetivamente removida.
- depreciação/remoção da função loadstring
A função loadstring é depreciada na versão 5.2, em favor da função
load, que passa a poder ler strings também. Depois, na 5.3, a função
loadstring é removida.
- operações bit a bit
A versão 5.2 inclui um novo módulo (bit32) que suporta operações bit a
bit (bit AND, OR, NOT, XOR), e depois a 5.3 deprecia o módulo em favor
de operadores nativos (o que vem junto com uma representação interna
dos números inteiros como inteiros em C).
- interpretador interativo
Uma conveniência a partir da versão 5.3 está no interpretador: se você
informar um valor literal ou o nome de uma variável, esse mesmo valor
será retornado. Para obter o mesmo efeito nas versões 5.1 e 5.2, o
valor deve ser sempre precedido do sinal de igual (=).
--
Att,
@hrcerq
0/ ´ ° ` o ´ ° ` \0