您的位置:首页 > 编程语言 > Lua

[Lua基础学习]---Lua函数

2018-02-12 15:37 337 查看

函数

函数主要用途
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: