Palavras e caracteres reservados
Link da aula anterior, caso não tenha lido.
Palavras e caracteres reservados que será usada nessa aula:
function ( ) return end local
A palavra “function” serve para criar uma função, ou seja, um bloco de instruções que irá fazer algo.
Ela é composta majoritariamente pela palavra “function”, um nome para essa função (que pode ser omitido, mas assim sendo não poderá ser chamado posteriormente), depois entre parêntesis ficam os parâmetros dessa função; ela pode ter em seu bloco o uso da palavra “return” que serve para retornar valores (ou nil) para quem chamou a função e a palavra “end” que finaliza o bloco da função.
A função cria um bloco e dentro desse bloco podem-se alocar diversas instruções dependendo apenas da finalidade da função.
function nomeDaMinhaFuncao(parametro1,parametro2,quantosParametrosEuQuiser,quantosParametrosEuPrecisar)
--corpo da função. Na qual fica todas as instruções de afazeres dessa função (finalidade da função).
return -- não é obrigatório seu uso. Usa-se apenas quando se faz necessário para o programa; nesse caso ele retornou nil (nulo).
end -- obrigatório para fechar o bloco da função.
Um exemplo de função e uso do return:
-- palavra reservada, nome da função, parâmetros dela.
function somar(a,b)
return a+b -- retorno de valor.
end -- finaliza o bloco da função.
print(somar(10,20)) >> 30
Quando a função “somar” é chamada, a palavra reservada return retorna a quem chamou a função um valor ou uma serie de valores.
Um exemplo do uso da função sem o uso do return.
function imprimir(txt)
print(txt)
end
Um exemplo de uma função que retorna diversos valores:
function ret(num)
return true,num*num,”retornando uma string”
end
Nesse caso, essa função retorna três valores: o primeiro é um boolean (true); o segundo é a multiplicação do parâmetro “num” por ele mesmo; o terceiro é uma string.
Obs.: Em outra aula desse modulo, será tratado como pegar os valores múltiplos retornados por uma função.
Funções podem fazer do uso da recursividade, que nada mais é do que chamar a si próprio.
function rec(param,n)
n = not n and 1 or n
if n < 2 then –uma forma de controlar a quantidade de vezes que será executada a recursividade.
return rec(param*2,n+1) -- recursividade.
end
return param*2 -- Para a recursividade.
end
Quando se faz do uso da recursividade, tu tens que criar alguma forma de parar a chamada dela.
Um exemplo de uma função sem nome:
function(arg) end
Funciona e é muito usado em programação. Serve para criar um bloco na qual terá instruções, mas que não será usado posteriormente.
Quando não se sabe ao certo a quantidade de parâmetros que terá uma função, fazemos do uso dos três pontos (reticências) para isso.
function naoSeiQuantosParametrosTemEssaFuncao(...)
parametros = {...} -- insere tais parâmetro em uma tabela para que seja pego os argumentos passados a função.
for k,v in pairs(parametros) do -- percorre a tabela com os argumentos passados a função
print(k,v) -- imprime os valores passados a função
end
end
naoSeiQuantosParametrosTemEssaFuncao(‘oi’,’lua’)) >> oi lua
naoSeiQuantosParametrosTemEssaFuncao(“idade”,20,”nome”,”Vladimir”) >> idade 20 nome Vladimir
Tu podes também mesclar declarações de parâmetros com os três pontos (reticências):
function doisParametrosDeclarados(nome,idade,...)
return “nome: ”..nome, “idade: ”..idade,unpack({...}) -- A função unpack retorna os restantes dos argumentos passados a função.
end
print(doisParametrosDeclarados(“Vladimir”,20, “anos”) >> nome: Vladimir idade: 20 anos
print(doisParametrosDeclarados(“Vladimir”,20, “anos”, “um novo parâmetro”, “e assim sucessivamente”) >> nome: Vladimir idade: 20 anos um novo parâmetro e assim sucessivamente
Explicando um pouco sobre o uso da palavra reservada “local” em funções:
Toda função declarada assume um valor global, ou seja, é visível por outros scripts; quando se declara local, essa função só é visível apenas por aquele script.
local function funcaolocal() end
Agora em seu código criado em outras aulas, insira nele pelo menos uma função.
Inté a próxima aula.