Lua - 函数声明

Lua - 函数声明 首页 / Lua入门教程 / 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     - 可选,默认为global,您可以使用关键字 local 来定义为局部函数。

  • function                        - 这是函数的实际名称。

  • 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

调用函数

在创建Lua函数时,您需要定义函数的函数。要使用方法,您将必须调用该函数来执行定义的任务。

要调用方法,您只需要传递所需的参数以及方法名称,并且如果该方法返回一个值,则可以存储返回的值。如-

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

SQL必知必会 -〔陈旸〕

摄影入门课 -〔小麥〕

To B市场品牌实战课 -〔曹林〕

操作系统实战45讲 -〔彭东〕

HarmonyOS快速入门与实战 -〔QCon+案例研习社〕

PyTorch深度学习实战 -〔方远〕

Web漏洞挖掘实战 -〔王昊天〕

商业思维案例笔记 -〔曹雄峰〕

大型Android系统重构实战 -〔黄俊彬〕

好记忆不如烂笔头。留下您的足迹吧 :)