As funções em Lua são bem parecidos com as funções em Python, veja o exemplo a seguir:
Primeiro temos function especificando que essa é uma função, depois temos o nome da função soma e temos (x, y), a função recebe os valores x e y, que veremos mais para frente. Na função retomamos o valor return x + y, que retorna o valor de x + y. Depois um end mostrando o fim da função e um print(soma(1, 2)).
A função soma pega os valores de x e y e retorna x + y, os valores de x e y eles não foram definidos ainda temos apenas a função mostrando o que vai fazer com dois valores que serão pegados. Depois do end temos aí sim a chamada da função, temos um print que imprime na tela e dentro dele temos a chamada da função soma com dois valores: soma(1, 2). Com soma chamamos o nome da função, que está bem do lado da palavra function, e enviamos dois valores para ela 1 e 2, sendo que 1 recebe x e 2 recebe y. Logo, quando a função rodar ela vai pegar esses dois valores e vai retornar x + y.
Se não tivesse o print() não apareceria nada, isso porque o return não imprime na tela, ele apenas retorna, se você tirar o print não vai funcionar. Porém, se você tirar o return e colocar print(x + y) dentro da função você vai poder só chamá-la com soma(1, 2) sem print sem nada. Tente isso, depois tente mudar os valores de 1 e 2, lembrando que o primeiro valor vai sempre ser x e o segundo y, a menos que você mude a ordem lá em cima. Olhe exemplos de função:
------------------------
function imprime(x): -- dou o nome da função de imprime e faço ela receber um valor qualquer que eu vou chamar de x
print(x) -- vai imprimir o valor, sempre lembrando de dar um tab para ficar mais para frente
end
imprime("lele") -- o lele vai ser enviado e vai ser o x
------------------------
function multiplica(lele, dede)
return lele * dede
end
print(multiplica(10, 20)) --vai chamar a função dentro de um print enviando de valores 10, no lele, e 20 no dede.
-- a função vai retornar um valor esse vai ser imprimido na tela.
------------------------
Agora vou mostrar uma função um pouco mais avançada: (lembre-se de sempre tentar novas combinações, de fato experimentar e não apenas ficar lendo rapidamente, copie os códigos, entenda eles, tente mudá-los e refaze-los, etc. )
Em Lua você pode sim pegar variáveis globais, ou seja, variáveis de fora da função, diferentemente do python, e você pode até mudar as variáveis de fora da função como mostrado abaixo: (cuidado para não atrapalhar seus progamas em outras linguagens.)
Veja a função acima, quando alteramos o a acaba que alteramos também seu valor global, o de fora da função, para alterar apenas o valor local do a se deve usar um local antes do a, veja o exemplo abaixo: (se você não conhece outra linguagem pode estar boiando, mas isso sim tem uma diferença muito grande. )
O computador de fato trata as funções locais e globais como totalmente diferentes, mesmo que sejam ambas apenas "a".
Voltar para a página anterior