变长参数
function go(...)
	for i,v in ipairs{...} do
		print(v)
	end
end

function goo(...)
	for i=1,select('#',...) do
		print(select(i,...))
	end
end

go(5,nil,1) --5
goo(nil,1,5,9) --4行 nil,1,5,9   1,5,9   5,9   9


变长参数只要只用...代表就可以了,...代表一个数组吧

使用ipairs访问变长数组会遇到nil值就停止,如果参数中存在nil,那么后面的值将无法访问

使用select可以访问包含nil值,select('#',...)表示取这个数组的长度,select(1,...)表示返回第一个及后面所有,select(2,...)表示返回第二个及后面所有......所以要获取具体第几位的参数值,只需要一个临时变量来去承接返回来的第一个值,其他舍弃调就行了。


首页 我的博客
粤ICP备17103704号