Функция — это группа операторов, которые вместе выполняют задачу. Вы можете разделить ваш код на отдельные функции. Как вы делите свой код между различными функциями, зависит от вас, но логически разделение обычно уникально, поэтому каждая функция выполняет определенную задачу.
Язык Lua предоставляет множество встроенных методов, которые может вызывать ваша программа. Например, метод print () для печати аргумента, переданного в качестве ввода в консоли.
Функция известна под разными именами, например, метод, подпрограмма, процедура и т. Д.
Определение функции
Общая форма определения метода в языке программирования Lua выглядит следующим образом:
optional_function_scope function function_name( argument1, argument2, argument3........, argumentn) function_body return result_params_comma_separated end
Определение метода в языке программирования Lua состоит из заголовка метода и тела метода . Вот все части метода —
-
Необязательная область действия функции. Вы можете использовать ключевое слово local, чтобы ограничить область действия функции или игнорировать раздел области действия, что сделает ее глобальной функцией.
-
Имя функции — это фактическое имя функции. Имя функции и список параметров вместе составляют сигнатуру функции.
-
Аргументы — Аргумент похож на заполнитель. Когда вызывается функция, вы передаете значение аргументу. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству аргументов метода. Аргументы необязательны; то есть метод может не содержать аргументов.
-
Тело функции — Тело метода содержит коллекцию операторов, которые определяют, что делает метод.
-
Return — в Lua можно вернуть несколько значений, следуя ключевому слову return с возвращаемыми значениями через запятую.
Необязательная область действия функции. Вы можете использовать ключевое слово local, чтобы ограничить область действия функции или игнорировать раздел области действия, что сделает ее глобальной функцией.
Имя функции — это фактическое имя функции. Имя функции и список параметров вместе составляют сигнатуру функции.
Аргументы — Аргумент похож на заполнитель. Когда вызывается функция, вы передаете значение аргументу. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству аргументов метода. Аргументы необязательны; то есть метод может не содержать аргументов.
Тело функции — Тело метода содержит коллекцию операторов, которые определяют, что делает метод.
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
Аргументы функции
Если функция должна использовать аргументы, она должна объявлять переменные, которые принимают значения аргументов. Эти переменные называются формальными параметрами функции.
Формальные параметры ведут себя как другие локальные переменные внутри функции и создаются при входе в функцию и уничтожаются при выходе.
Вызов функции
При создании функции 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))
Когда мы запустим приведенный выше код, мы получим следующий вывод.