Kiritow的学园 2019-06-13
函数是一组一起执行任务的语句。可以把代码放到独立的函数中。怎么划分代码功能之间的不同,但在逻辑上划分通常是让每个函数执行特定的任务。
Lua语言提供了程序可以调用大量的内置方法。例如,方法print()打印作为输入传参数在控制台中。
函数是已知的各种名称,如方法或子程序或程序等。
定义一个函数
在Lua编程语言中的方法的定义一般形式如下:
代码如下:
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separated end
在 Lua 编程语言的方法定义包括方法头和方法体。这里是方法的所有部件
例子:
下面是一个函数的源代码调用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))
当我们运行上面的代码中,将得到下面的输出。
代码如下:
The average is 5.5