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

函数

函数主要用途
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

你可能感兴趣的:(Lua基础知识)