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的函数返回类型根据传入的参数以及返回值表达式中的运算符决定(大概

posted @ 2018-09-17 19:54  凌夜霜  阅读(259)  评论(0编辑  收藏  举报