• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Lua基础之可变参数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用三点 ... 表示函数有可变的参数。

1.通过#param获取可变参数数量

function average(...)
   result = 0
   local arg={...}    --> arg 为一个表,局部变量
   for i,v in ipairs(arg) do
      result = result + v
   end
   print("总共传入 " .. #arg .. " 个数") --> #arg = 6
   return result/#arg
end

print("平均值为",average(10,5,3,4,5,6))  --> 5.5

function average(...)
   result = 0
   local arg={...}
   for i,v in ipairs(arg) do
      result = result + v
   end
   print("总共传入 " .. select("#",...) .. " 个数")
   return result/select("#",...)
end

print("平均值为",average(10,5,3,4,5,6))

arg = select(2, 1, 6, 8, 8, 9) --> 相当于arg = 6, 8, 8, 9
print(arg)  --> 输出为:6
print(type(arg)) --> 输出为:number(验证了是多返回值的第一个number,而不是打印arg第一个参数的类型table)
print(select(2, 1, 6, 8, 8, 9))  --> 输出为:6    8    8    9

select (index, ···)

If index is a number, returns all arguments after argument number index;

a negative number indexes from the end (-1 is the last argument).

Otherwise, index must be the string "#", and select returns the total number of extra arguments it received.

-- Lua 5.3 Reference

如果通过 # 还是 table.getn 其都会在索引中断的地方停止计数


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
关于Lua程序设计{读书笔记}发布时间:2022-07-22
下一篇:
[ISSUE]invalid'cobj'infunction'lua_cocos2dx_EventDispatcher_dispatchCustomEvent'发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap