Funções Lua

Neste artigo, vamos nos aprofundar nas funções Lua , discutindo sua sintaxe, parâmetros, valores de retorno e práticas recomendadas para usá-las.

As funções são um conceito essencial na programação. Eles facilitam a escrita e a manutenção do código porque permitem que os blocos de código sejam reutilizados em todo o programa.

Diferentes partes do programa podem chamar funções, que recebem entradas, executam operações e retornam saídas.

A depuração e a manutenção do código ficam mais fáceis quando o código é organizado em funções. Além de melhorar a legibilidade do código, as funções também podem reduzir a duplicação de código.



Sintaxe das Funções Lua

A sintaxe de uma função Lua é relativamente direta.

Para definir uma função, use a palavra-chave function, seguida pelo nome da função, parâmetros (se houver) e o bloco de código entre end.

Aqui está um exemplo de uma função Lua simples:

function greet(name)
print("Hello, " .. name .. "!")
end

No exemplo acima, definimos uma função chamada greet que recebe um único parâmetro, name.

O bloco de código entre end simplesmente concatena a string “ Hello ,” com o parâmetro name e um ponto de exclamação, e imprime o resultado no console.


Criar uma função

Existem dois tipos principais de funções Lua:

  • Funções integradas
  • Funções definidas pelo usuário

Funções integradas

Lua fornece funções integradas que podem ser usadas sem configuração adicional, como print(), type(), tonumber() e math.random().

Este exemplo mostra a implementação de algumas funções incorporadas em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
str = 'Displayed using print statement in Lua'
print(str) -- displays the string passed as argument
_type = type('type')
print('Type: '.._type) -- returns data type of the value passed
strtonum = '5'
print(tonumber(strtonum)) -- converts string to number
print(math.random(1,10)) -- returns a random number between 1 and 10 inclusive
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Funções definidas pelo usuário

Os usuários podem definir suas próprias funções e personalizá-las para atender às suas necessidades.

Além de receber argumentos e retornar valores, as funções definidas pelo usuário também podem ter efeitos colaterais, que são alterações nas variáveis ​​ou no estado do programa causadas pela execução da função.


Definir uma função

A sintaxe para definir uma função em Lua é a seguinte:

scope function function_name(param1, param2, ...)
-- Function body
return value
end
  • Usar a palavra-chave local limitará o escopo da função, enquanto omitir a seção de escopo a tornará global.
  • A palavra-chave function indica que uma função está sendo definida.
  • function_name representa o nome da função.
  • param1, param2, etc. são os parâmetros da função, que são opcionais.
  • O corpo da função contém o código que será executado quando a função for chamada.
  • A instrução return é usada para especificar o valor que a função retornará. É opcional; se nenhuma declaração de retorno for usada, a função retornará nil .

Aqui está um exemplo de uma função que recebe dois parâmetros e retorna sua paridade :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function myfunc(num1, num2)
if ((num1+num2)%2==0) then
result = 'even';
else
result = 'odd';
end
return result;
end
print("The sum of the two numbers is:",myfunc(6,4))
print("The sum of the two numbers is:",myfunc(7,6))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Atribuir e passar funções

As funções Lua são valores de primeira classe, o que significa que podem ser atribuídas a variáveis ​​e passadas como parâmetros de outras funções como qualquer outro valor.
O exemplo abaixo demonstra a atribuição de funções a variáveis :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
local _func = function(x,y)
if (x>y) then
local str = x..' is greater than '..y;
return str;
elseif(x<y) then
local str = y..' is greater than '..x;
return str;
else
local str = x..' is equal to '..y;
return str;
end
end
local _result = _func(3,4)
print(_result)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Função e Argumento Variável

Em Lua , você pode definir uma função com um número variável de argumentos usando o operador … .

Isso é chamado de função de argumento variável.

O exemplo a seguir ilustra uma função de argumento variável em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function max_number()
local _table = {};
first_num = _table[1];
for i, v in ipairs({}) do
if(v > first_num) then
first_num = v;
end
end
return first_num
end
local result = max_number(3, 9, 7, 4,6)
print(result)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Melhores práticas para usar funções Lua

Para usar as funções Lua com eficácia, é essencial seguir algumas práticas recomendadas.

Aqui estão algumas dicas para manter em mente:

  • As funções são uma excelente maneira de encapsular um bloco de código que executa uma tarefa específica. Ao usar funções, podemos manter nosso código organizado e mais fácil de manter.
  • Idealmente, uma função deve executar apenas uma tarefa. Se uma função começar a ficar muito longa ou complexa, é uma boa ideia dividi-la em funções menores e mais focadas.
  • O uso de variáveis ​​globais em uma função pode dificultar a compreensão e a depuração. Em vez disso, passe todos os dados necessários para a função como parâmetros.
  • Boas convenções de nomenclatura tornam nosso código mais fácil de ler e entender. Use nomes descritivos para funções e parâmetros que descrevam com precisão sua finalidade.
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone