Ir para conteúdo
Propaganda

Posts Recomendados

  • Suporte

AULA ANTERIOR


Funções em Lua

Em Lua, funções são blocos de código que realizam uma tarefa específica e podem ser reutilizadas em diferentes partes do código. Funções permitem que você evite repetir o mesmo conjunto de instruções várias vezes e ajudam a tornar o código mais organizado e legível.

Estrutura de uma Função

Uma função em Lua pode ser definida de duas formas:

  1. Função nomeada: Quando você define uma função com um nome explícito, usando a palavra-chave function.

  2. Função anônima: Quando você cria uma função sem nome e a armazena em uma variável.

Vamos explicar ambos os casos.


1. Função Nomeada

Uma função nomeada é declarada com a palavra-chave function, seguida pelo nome da função, e depois a lista de parâmetros entre parênteses (caso a função precise de parâmetros). Após o corpo da função, utilizamos a palavra-chave end para indicar o fim da função.

Exemplo:

-- Função que soma dois números 
function somar(x, y) 
  return x + y 
end 
-- Chamando a função 
local resultado = somar(3, 4) 
print(resultado) -- Imprime 7

 

Explicação:

  • function somar(x, y): Define a função chamada somar, que recebe dois parâmetros: x e y.

  • return x + y: A função retorna a soma de x e y.

  • somar(3, 4): Aqui chamamos a função somar, passando 3 e 4 como argumentos. O retorno da função é armazenado na variável resultado, que é então impresso.


2. Função Anônima (Sem Nome)

Uma função anônima não tem um nome explícito e pode ser armazenada em uma variável. Esse tipo de função é útil quando você deseja criar uma função para usar apenas uma vez ou quando precisa passar uma função como argumento para outra função.

Exemplo:

-- Função anônima atribuída a uma variável 
local soma = function(x, y) 
  return x + y 
end 
-- Chamando a função 
local resultado = soma(3, 4) 
print(resultado) -- Imprime 7

 

Explicação:

  • local soma = function(x, y): Cria uma função anônima que soma dois números, e a armazena na variável soma.

  • soma(3, 4): Chama a função usando a variável soma, passando 3 e 4 como argumentos.


Funções e Parâmetros

Funções em Lua podem receber parâmetros (também chamados de argumentos) que são valores passados para a função quando ela é chamada. Esses parâmetros permitem que a função trabalhe com valores dinâmicos, variando conforme a entrada.

Exemplo com múltiplos parâmetros:

-- Função para calcular a área de um retângulo
function calcularAreaComprimentoLargura(comprimento, largura) 
  return comprimento * largura 
end 
-- Chamando a função com 2 argumentos 
local area = calcularAreaComprimentoLargura(5, 3) 
print(area) 
-- Imprime 15

Explicação:

  • comprimento e largura são os parâmetros da função.

  • calcularAreaComprimentoLargura(5, 3) passa os valores 5 e 3 como argumentos para a função.


Funções e Retorno de Valores

As funções em Lua podem retornar um ou mais valores. O valor retornado pode ser capturado pela chamada da função e usado em outras partes do código.

Exemplo com múltiplos valores retornados:

-- Função que retorna dois valores 
function calcularSomaEDiferença(x, y)
  local soma = x + y 
  local diferença = x - y 
  return soma, diferença -- Retorna dois valores 
end 
local resultadoSoma, resultadoDiferenca = calcularSomaEDiferença(7, 3)
print("Soma:", resultadoSoma) -- Imprime "Soma: 10"
print("Diferença:", resultadoDiferenca) -- Imprime "Diferença: 4"

Explicação:

  • return soma, diferença: A função retorna dois valores — a soma e a diferença de x e y.

  • local resultadoSoma, resultadoDiferenca =: Ao chamar a função, os dois valores retornados são armazenados em duas variáveis (resultadoSoma e resultadoDiferenca).


Funções Como Parâmetros

Em Lua, você pode passar funções como parâmetros para outras funções. Isso é muito útil para implementar comportamentos personalizados.

Exemplo:

-- Função que recebe outra função como parâmetro 
function aplicarOperacao(funcao, x, y) 
  return funcao(x, y) 
end 
-- Função de soma 
local soma = function(a, b) 
  return a + b 
end 
-- Usando a função 'aplicarOperacao' e passando a função 'soma' como parâmetro 
local resultado = aplicarOperacao(soma, 3, 4) 
print(resultado) -- Imprime 7

Explicação:

  • aplicarOperacao(funcao, x, y): Recebe uma função e dois valores x e y.

  • soma: A função soma é passada como um parâmetro para a função aplicarOperacao.


Funções Recursivas

Uma função pode chamar a si mesma, o que é chamado de recursão. Funções recursivas são úteis para resolver problemas que podem ser divididos em subproblemas menores (por exemplo, cálculo de fatorial ou busca em árvores).

Exemplo de função recursiva (fatorial):

-- Função recursiva para calcular fatorial 
function fatorial(n) 
  if n == 0 then 
    return 1 
  else 
    return n * fatorial(n - 1) -- Chama a função novamente com n - 1 
  end 
end 
print(fatorial(5)) -- Imprime 120

Explicação:

  • fatorial(n): A função chama a si mesma com o valor n - 1 até atingir o caso base (n == 0), quando o fatorial de 0 é definido como 1.

  • fatorial(5): Chama a função recursivamente até o cálculo do fatorial de 5.


Resumo

  • Funções são blocos de código que podem ser reutilizados e podem retornar valores.

  • Em Lua, você pode definir funções nomeadas ou anônimas.

  • Funções podem receber parâmetros e retornar valores (inclusive múltiplos valores).

  • Funções podem ser passadas como parâmetros para outras funções.

  • Funções recursivas são funções que se chamam para resolver problemas de forma repetitiva.

Com essas explicações, agora você tem uma visão completa sobre como funcionam as funções em Lua e como utilizá-las de maneira eficaz no seu código!

PROXIMA AULA

 

Link para o comentário
https://tibiadevs.com/forums/topic/1001-introdu%C3%A7%C3%A3o-%C3%A0-fun%C3%A7%C3%B5es-em-lua/
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...