脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Lua - Lua中的函数相关知识点整理汇总

Lua中的函数相关知识点整理汇总

2020-05-03 12:24脚本之家 Lua

这篇文章主要介绍了Lua中的函数相关知识点整理汇总,包括函数的参数传递和定义函数等基本知识,需要的朋友可以参考下

 函数是一组一起执行任务的语句。可以把代码放到独立的函数中。怎么划分代码功能之间的不同,但在逻辑上划分通常是让每个函数执行特定的任务。

Lua语言提供了程序可以调用大量的内置方法。例如,方法print()打印作为输入传参数在控制台中。

函数是已知的各种名称,如方法或子程序或程序等。
定义一个函数

在Lua编程语言中的方法的定义一般形式如下:

 

复制代码 代码如下:
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
function_body
return result_params_comma_separated
end

 

在 Lua 编程语言的方法定义包括方法头和方法体。这里是方法的所有部件

  •     可选函数适用范围:可以使用关键字本地范围的限制功能或忽略的范围部分,这将使它成为一个全局函数。
  •     函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
  •     参数:一个参数是像占位符。当调用一个函数,将值传递给参数。这个值被称为实际参数或参数。参数列表是指类型,顺序和数量的方法的参数。参数是可选的;也就是说,方法可能没有参数。
  •     函数体:方法主体包含了定义方法做什么的语句的集合。
  •     返回:在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))

 

当我们运行上面的代码中,将得到下面的输出。

 

复制代码 代码如下:
The average is 5.5

延伸 · 阅读

精彩推荐
  • LuaLua学习笔记之数据类型

    Lua学习笔记之数据类型

    这篇文章主要介绍了Lua学习笔记之数据类型,本文同时讲解了开发环境的搭建,需要的朋友可以参考下 ...

    皂荚花4382019-11-17
  • LuaLua教程(八):数据持久化

    Lua教程(八):数据持久化

    这篇文章主要介绍了Lua教程(八):数据持久化,本文讲解了数据文件持久化、序列化两部份内容,需要的朋友可以参考下 ...

    Lua教程网5292020-04-29
  • LuaLua中遍历数组和table的4种方法

    Lua中遍历数组和table的4种方法

    这篇文章主要介绍了Lua中遍历数组和table的4种方法,本文讲解了使用for遍历、迭代器的方式遍历等方法,同时提供一个复杂table的的遍历方法,需要的朋友可以...

    脚本之家23952020-04-26
  • LuaLua中的控制结构(流程控制)简明总结

    Lua中的控制结构(流程控制)简明总结

    这篇文章主要介绍了Lua中的控制结构(流程控制)简明总结,本文讲解了IF、repeat、while、for、break、return等语句,需要的朋友可以参考下 ...

    脚本之家3522020-04-14
  • LuaLua中的函数相关知识点整理汇总

    Lua中的函数相关知识点整理汇总

    这篇文章主要介绍了Lua中的函数相关知识点整理汇总,包括函数的参数传递和定义函数等基本知识,需要的朋友可以参考下 ...

    脚本之家2562020-05-03
  • LuaC语言中调用Lua函数实例

    C语言中调用Lua函数实例

    这篇文章主要介绍了C语言中调用Lua函数实例,本文讲解了调用一个Lua函数的步骤和C语言调用Lua函数实例,需要的朋友可以参考下 ...

    脚本之家9262020-04-27
  • LuaLua中写排序算法实例(选择排序算法)

    Lua中写排序算法实例(选择排序算法)

    这篇文章主要介绍了Lua中写排序算法实例,本文用一个选择排序算法为例讲解如何在Lua中写一个排序算法,需要的朋友可以参考下 ...

    脚本之家7902020-04-27
  • LuaLua中调用C++函数示例

    Lua中调用C++函数示例

    这篇文章主要介绍了Lua中调用C++函数示例,本文给出的C++函数average()演示了如何接受多个参数且返回超过一个值,需要的朋友可以参考下 ...

    脚本之家3642020-05-06