- Lua 教程
- Lua - 首页
- Lua 基础
- Lua - 概述
- Lua - 环境
- Lua - 基本语法
- Lua - 注释
- Lua - 打印 Hello World
- Lua - 变量
- Lua - 数据类型
- Lua - 运算符
- Lua - 循环
- Lua - 决策
- Lua - 函数
- Lua - 日期和时间
- Lua 数组
- Lua - 数组
- Lua - 多维数组
- Lua - 数组长度
- Lua - 遍历数组
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 在列表中搜索
- Lua 模块
- Lua - 模块
- Lua - 命名空间
- Lua 元表
- Lua - 元表
- Lua 协程
- Lua - 协程
- Lua 文件处理
- Lua - 文件 I/O
- Lua 库
- Lua - 标准库
- Lua - 数学库
- Lua - 操作系统功能
- Lua 有用资源
- 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 编程语言中的方法定义由方法头和方法体组成。以下是方法的所有部分:
可选函数作用域 - 您可以使用关键字local来限制函数的作用域或忽略作用域部分,这将使其成为全局函数。
函数名称 - 这是函数的实际名称。函数名称和参数列表共同构成函数签名。
参数 - 参数就像一个占位符。当调用函数时,您将值传递给参数。此值称为实际参数或参数。参数列表指的是方法的参数类型、顺序和数量。参数是可选的;也就是说,方法可能不包含任何参数。
函数体 - 函数体包含定义函数功能的一组语句。
返回值 - 在 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 语句或到达其函数的末尾时,它将程序控制权返回到主程序。
要调用方法,您只需将所需的参数与方法名称一起传递,如果方法返回值,则可以存储返回值。例如:
main.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 中赋值和传递函数作为参数的简单示例。
main.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 中,可以使用 '...' 作为参数来创建具有可变参数的函数。我们可以通过查看一个示例来了解这一点,在该示例中,函数将返回平均值,并且可以采用可变参数。
main.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