Lua - Функции

Функция - это группа операторов, которые вместе выполняют задачу. Вы можете разделить свой код на отдельные функции. Как разделить код между различными функциями - решать вам, но логически разделение обычно уникально, поэтому каждая функция выполняет определенную задачу.

Язык Lua предоставляет множество встроенных методов, которые может вызывать ваша программа. Например, методprint() чтобы напечатать аргумент, переданный как ввод в консоли.

Функция известна под разными именами, такими как метод, подпрограмма, процедура и т. Д.

Определение функции

Общая форма определения метода на языке программирования Lua следующая:

optional_function_scope function function_name( argument1, argument2, argument3........, 
argumentn)
function_body
return result_params_comma_separated
end

Определение метода на языке программирования Lua состоит из заголовка метода и тела метода . Вот все части метода -

  • Optional Function Scope- Вы можете использовать ключевое слово local, чтобы ограничить область действия функции или игнорировать раздел области действия, что сделает ее глобальной функцией.

  • Function Name- Это настоящее имя функции. Имя функции и список параметров вместе составляют сигнатуру функции.

  • Arguments- Аргумент похож на заполнитель. Когда функция вызывается, вы передаете значение аргументу. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству аргументов метода. Аргументы необязательны; то есть метод может не содержать аргументов.

  • Function Body - Тело метода содержит набор операторов, которые определяют, что делает метод.

  • Return - В Lua можно возвращать несколько значений, следуя ключевому слову return с возвращаемыми значениями, разделенными запятыми.

пример

Ниже приведен исходный код функции, называемой max(). Эта функция принимает два параметра num1 и num2 и возвращает максимум между двумя -

--[[ function returning the max between two numbers --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

Аргументы функций

Если функция должна использовать аргументы, она должна объявить переменные, которые принимают значения аргументов. Эти переменные называютсяformal parameters функции.

Формальные параметры ведут себя как другие локальные переменные внутри функции и создаются при входе в функцию и уничтожаются при выходе.

Вызов функции

Создавая функцию Lua, вы даете определение того, что функция должна делать. Чтобы использовать метод, вам нужно будет вызвать эту функцию для выполнения определенной задачи.

Когда программа вызывает функцию, управление программой передается вызываемой функции. Вызываемая функция выполняет определенную задачу, и когда выполняется ее оператор return или когда достигается конец ее функции, она возвращает управление программой обратно в основную программу.

Чтобы вызвать метод, вам просто нужно передать необходимые параметры вместе с именем метода, и если метод возвращает значение, вы можете сохранить возвращенное значение. Например -

function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

-- calling a function
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))

Когда мы запустим приведенный выше код, мы получим следующий результат.

The maximum of the two numbers is 	10
The maximum of the two numbers is 	6

Назначение и передача функций

В Lua мы можем назначать функцию переменным, а также передавать их как параметры другой функции. Вот простой пример назначения и передачи функции в качестве параметра в Lua.

myprint = function(param)
   print("This is my print function -   ##",param,"##")
end

function add(num1,num2,functionPrint)
   result = num1 + num2
   functionPrint(result)
end

myprint(10)
add(2,5,myprint)

Когда мы запустим приведенный выше код, мы получим следующий результат.

This is my print function -   ##	10	##
This is my print function -   ##	7	##

Функция с переменным аргументом

В Lua можно создавать функции с переменными аргументами, используя в качестве параметра '...'. Мы можем понять это, посмотрев пример, в котором функция возвращает среднее значение и может принимать переменные аргументы.

function average(...)
   result = 0
   local arg = {...}
   for i,v in ipairs(arg) do
      result = result + v
   end
   return result/#arg
end

print("The average is",average(10,5,3,4,5,6))

Когда мы запустим приведенный выше код, мы получим следующий результат.

The average is	5.5