📅  最后修改于: 2023-12-03 15:02:48.829000             🧑  作者: Mango
函数是Lua编程语言最基本,也是最重要的概念之一。通俗的讲,函数就是一段封装好的代码,可以在程序中调用多次,避免重复的代码书写,提高程序的可读性和可维护性。
在Lua中定义函数的语法格式如下:
function 函数名(参数1, 参数2, ...)
-- 函数体
return 返回值
end
其中,function
是Lua的关键字,表示开始一个函数的定义,函数名
是用户自定义的函数名称,参数1, 参数2, ...
是函数的参数列表,这里可以是多个参数,如果没有参数,那么参数列表可以省略不写,-- 函数体
是函数的主体部分,函数里面要实现的逻辑代码需要写在这里,return
关键字用来将函数的返回值返回给函数调用者,如果函数没有返回值或者没有写return
关键字,则默认返回nil
。
在Lua中调用函数的语法格式如下:
-- 调用无参函数
函数名()
-- 调用有参函数
函数名(参数1, 参数2, ...)
如上所示,要调用函数,只需要写上函数名称,然后在函数名称后面加上一对小括号即可,如果有参数需要传递给函数,则在小括号中传递参数即可。
函数可以有返回值,也可以没有返回值,对于无返回值的函数,调用者可以采用下面两种方式来判断函数的调用结果:
-- 无返回值的函数
function print_hello()
print("Hello, Lua!")
end
-- 方式一:函数直接调用,不需要进行判断
print_hello()
-- 方式二:通过调用pcall()函数来捕获函数调用的返回结果
if pcall(print_hello) then
print("函数调用成功")
else
print("函数调用失败")
end
对于有返回值的函数,则需要在函数的定义中使用return
关键字显式的返回函数的返回值。如果函数定义中没有使用return
语句,则函数的返回值就是nil
。具体的示例如下:
-- 有返回值的函数
function add(a, b)
return a + b
end
-- 方式一:把返回值赋值给变量
result = add(1, 2)
print(result)
-- 方式二:直接调用,并输出函数返回值
print(add(3, 4))
在Lua中,函数可以像变量一样进行赋值和传递,这种函数称为匿名函数。匿名函数是一种没有名称的函数,可以通过变量名来引用和调用。定义匿名函数的语法格式如下:
-- 定义匿名函数
var = function(参数1, 参数2, ...)
-- 函数体
return 返回值
end
-- 调用匿名函数
var(参数1, 参数2, ...)
使用匿名函数的示例如下:
-- 赋值匿名函数给变量
sum = function(a, b)
return a + b
end
-- 调用匿名函数
print(sum(10, 20))
在Lua中,函数可以接收可变数量的参数,这种可变参数函数称为可变参数函数
。使用可变参数函数可以使代码更加的简洁和高效。定义可变参数函数的语法格式如下:
-- 可变参数函数
function add(...)
-- 计算所有参数的和
local sum = 0
for i, v in ipairs({...}) do
sum = sum + v
end
return sum
end
-- 调用可变参数函数
print(add(10, 20, 30, 40))
print(add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
如上所示,可变参数函数使用三个点(...
)来表示,...
表示一个未定数量的参数,可以是零个或多个参数。函数内部使用arg
或{...}
来获取可变参数。在上面的示例中,我们使用了arg
来获取可变参数,同时还使用了ipairs()
函数来遍历可变参数,并将参数的值累加到sum
变量中,最后返回sum
变量的值。
总结:
...
来表示。