lua中的函数--2

1.函数的参数数目

printResult = ""
function print(...)
	for i, v in ipairs(arg) do 
		printResult = printResult .. tostring(v).."\t"
	end
	printResult = printResult .. "\n"
end	

其中(…)三个点表示可变长度的参数, 当函数调用时,所有参数被转变为一个表,便是隐藏的参数被称作arg。此外arg还包含一个值n,指的是实际传入参数的数目。

指定接收参数

local _, x = string.find(s,p)
--now use 'x',接收第二个参数

或者使用select函数对返回参数进行选择:

print(string.find("hello hello", "hel")) -->6 9
print(select(1,string.find("hello hello", "hel")) -->6
print(select(2,string.find("hello hello", "hel")) -->9

以上所示的select函数的输入便是一个固定的参数值、以及加上剩下的数目不固定的参数值。
举个例子如下:

function g(a,b,...) end
-CALL        PARAMETERS
-g(3)         a=3,b=bil,arg={n=0}
-g(3,4)       a=3,b=4, arg={n=0}
-g(3,4,5,8)   a=3,b=4,arg={5,8;n=2}

select函数的定义如下:

function select (n,...)
	return arg[n]
end

使用unpack函数传参:

function  fwrite(fmt, ...)
	return io.write(string.format(fmt, unpack(arg)))
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值