Lua学习笔记(6): 函数
Lua的函数
函数用于简化程序,当某些工作需要重复执行的时候就可以使用函数减轻工作量(虽然复制粘贴也行)
语法:
function 函数名(参数列表)
函数体
return 返回值
end --结束标志
function标识符用于声明函数,函数的返回值根据返回值的表达式而定,end作为函数声明的结束标志
例子:
--计算两个number的和
function add(a, b)
return a + b
end
--拼接两个字符串
function cat(a, b)
return a..b
end
递归:函数中调用函数
例子:
--辗转相除法求最大公约数
function gcd(a, b)
if a == 0
then
return b
else
return gcd(b%a, a)
end
可变参数
function add(...)
local sum = 0 --使用local声明临时变量
for i, v in ipairs{...} do
sum = sum + v --Lua没有+=
end
end
可以使用select函数获得可变参数函数的长度以及通过索引获得参数
用法
获取长度 : select('#', ...)
获得第i个参数 : select(i, ...)
例子:
function cat(...)
local str = ""
for i = 1, select('#', ...) do --select获得参数数量
str = str..select(i, ...) --select随机访问参数
end
return str
end
Lua的匿名函数
在Lua中函数可作为变量使用,支持把函数作为参数传参
function show(data, fun)
fun(data) --匿名函数fun
end
good= function(a) --将匿名函数赋给good
print(a)
end
print(show(10, good)) --将good作为参数
Lua的函数返回类型根据传入的参数以及返回值表达式中的运算符决定(大概