#动力节点lua教程#
函数:Lua中函数的定义是以function开头,后跟函数名与参数列表,以end结尾。其可以没有返回值,也可以一次返回多个值。
固定参函数
如果实参个数少于形参个数,则系统自动使用nil填充;如果实参个数多于形参个数,多出的将被系统自动忽略。
可变参函数
在函数定义时不给出具体形参的个数,而是使用三个连续的点号。在函数调用时就可以向该函数传递任意个数的参数,函数可以全部接收。
可返回多个值
Lua中的函数一次可以返回多个值,但需要有多个变量来同时接收。
函数作为参数
Lua的函数中,允许函数作为参数。而作为参数的函数,可以是已经定义好的普通函数,也可以是匿名函数。
--固定参数函数
function aax(a,b)
print(a,b)
end
print("无实参传递")
aax() --nil nil
print("传递一个实参")
aax(10) -- 10 nil
print("传递两个实参")
aax(10,20) -- 10 20
print("传递三个实参")
aax(10,20,30) -- 10 20
--定义一个普通函数,包含可变参
function f(...)
local a, b, c, d = ...
print(a,b,c,d)
end
print("传递三个实参")
f(10,20,30) -- 10 20 30 nil
print("传递四个实参")
f(10,20,30,40) -- 10 20 30 40
print("传递五个实参")
f(10,20,30,40,50) -- 10 20 30 40
--定义一个函数,返回两个或多个值
function f( a, b)
local sum = a + b
local mul = a * b
return sum,mul
end
m , n = f (3 , 5)
print( m, n)
--定义两个函数
function sum(a,b) -- 定义 函数名 sum 参数 a,b
return a + b -- 返回 a+b
end
function mul(a,b) --定义 函数名 mul 参数 a,b
return a * b --返回 a*b
end
--定义一个函数,其参数为另外一个函数
function f(m,n,fun) --定义 函数名 f ,参数 m,n fun
local result = fun(m,n) --局部变量 result 赋值 fun(m,n)
print(result) --返回局部变量 result
end
--普通调用
f(3,5,sum)
f(3,5,mul)
--匿名函数调用
f(3,5,function (a,b)
return a - b
end)