函数
-
函数主要用途
-
1、是作为调用语句使用。
2、作为赋值语句的表达式使用。
语法:
[局部/全局] function fun_name([参数列表])
函数体
end
function :定义函数关键字
-
注意:
-
1、在使用 Lua 函数/变量时一定要先定义函数/变量
2、lua 函数不支持参数默认值, 可以使用 or 解决。如:
function name(str1,str2,str3)
str1 = str1 or "古梦"
str2 = str2 or "古梦"
str3 = str3 or "古梦"
end
多返回值
什么叫多返回值,就是返回多个数值。
- Lua 函数可以返回多个结果值,其返回匹配串“开始和结束的下标”(如果不存在匹配串返回 nil)。
function fun_Test()
return 1,2,3
end
a,b,c,d = fun_Test()
print(a,b,c,d)
--结果: 1 2 3 nil
Lua 作为独立的语句调用函数时,所有返回值将被忽略。
当调用作为表达式最后一个参数或者仅有一个参数时,根据变量个数函数尽可能地返回多个值,不足返回 nil,超出舍去。
- 当一个函数返回一个以上的返回值,且函数调用不是一个列表表达式的最后一个元素,那么函数只返回第一个返回值。
function f()
return 1,2,3
end
x,y,b,c = f() ----输出结果 x = 1, y = 2, b = 3,c = nil
t1 = {f(), 1}
print(t1[1],t1[2],t1[3])--输出结果 1, 1, nil --f()返回的第一个值
t2 = {1,f()}
print(t1[1],t1[2],t1[3],t1[4])--输出结果1, 1, 2, 3 -- f()返回所有的值
可变参数
函数参数列表中使用三点 (…) 表示该函数有可变参数。
Lua 将函数的参数放在一个叫 arg 的表中。
local function test(...)
arg = {...}
local count = 0
for k,v in pairs(arg) do
count = count + 1
end
return count
end
print(test(1,2,3,4,5))
--输出结果: 5