1
resposta

Lua no Windows não se comporta da mesma maneira que na videoaula

Estou no começo do curso "Lua: do zero ao jogo", ainda na 6ª atividade da 1ª aula "Tipos básicos" e notei uma disparidade entre o código sendo executado no vídeo pelo instrutor e o meu código executado na minha máquina.

Segui as instruções que se encontram na descrição da 5ª atividade da 1ª aula, de como instalar o Lua no Windows. Inclusive, usei o arquivo que se encontra disponível para download no corpo do texto da aula.

Até aí, ok. Consigo executar o modo interativo de lua através do prompt de comando do windows. O problema começa assim que o instrutor demonstra um exemplo de uma variável do tipo nil (logo aos 40 segundos de vídeo).

No vídeo, quando o instrutor chama a variável "fabio" sem antes defini-la, o retorno é "nil". A mesma coisa quando usa o método "type" para pegar o tipo da variável.

> fabio
nil
> type(fabio)
nil

Já no meu caso, quando chamo a variável "fabio", exatamente da mesma maneira que o instrutor, o meu terminal exibe ">>" com o cursor piscando logo após os símbolos ">>", indicando que está aguardando algum comando adicional.

> fabio
>>_

Se eu tento digitar o comando "type(fabio)", recebo a seguinte mensagem: "stdin:2: '=' expected near 'type'".

> fabio
>> type(fabio)
stdin:2: '=' expected near 'type'

Eu reparei que no vídeo, a versão do Lua que o instrutor usa, é a 5.3.4, porém, no arquivo para download compartilhado na atividade 5 da 1ª aula, a versão que temos é a 5.1.5. Poderia ser essa a causa da divergência entre o que é exibido na tela do instrutor e os resultados que estou obtendo?

1 resposta

Olá Ingo,

Por padrão, o interpretador da linguagem Lua exige que a gente coloque o símbolo = antes do nome da variável para que ele avalie o valor e apresente no interpretador. Então você poderia fazer assim:

> =fabio
nil

Existe um projeto em Lua que em teoria fornece um prompt estendido que fornece algumas facilidades e permite que a gente escreva os comandos como no vídeo sem o símbolo de =. O projeto está no GitHub:

https://github.com/ilua/ilua

Ainda assim mesmo com esse projeto também não consegui replicar o comportamento do vídeo então acredito que a forma mais segura é sempre utilizar o símbolo = para avaliar as expressões no interpretador. Testei com o Lua 5.1 e 5.3 e tive os mesmos resultados então não consigo afirmar com certeza o que está acontecendo e porque nas nossas máquinas não conseguimos ter esse comportamento. Se descobrir alguma coisa eu volto a postar aqui!