当前位置: 首页 > news >正文

Lua中的可变参数

lua支持一个函数接受不指定数量的参数。
例如print()可以随意加参数数量。

print(1,2,3,4)
print('s',1,{1,2,3},true,nil)

我们自己定义的函数也可以接受可变参数。

function xxx(...)-- ...表示可变参数arg = {...} --可以将可变参数放入tablefor i, v in ipairs(arg) doprint(v)end
end

使用select

function foo(...)print(select(2, ...))print(select('#', ...))print(select(-2, ...))
end

select(n, …):当 n 为数字时,返回第 n 个及其之后的所有可变参数(多返回值)。

select(‘#’, …):返回可变参数的数量(一个数值)。

n 可以为负数,负索引从参数末尾计算(比如 select(-1, …) 返回最后一个参数)。

foo(2,'s',true, 33.44,55)

结果如下

s	true	33.44	55
5
33.44	55

实战

实现函数接收可变参数,返回参数和以及平均值

第一种写法

local function foo2(...)local sum,count = 0,0for i = 1, select('#', ...) dolocal v = select(i, ...)  -- 返回多个参数,只会把第一个赋值给vsum = sum + vcount = count + 1endreturn sum, sum/count
end
print(foo2(1,2,4,5,6,10))

第二种写法

local function foo3(...)local t = table.pack(...)  -- 将可变参数放入表, 最后一个元素n对应表元素个数local sum,count= 0,t.nfor i,v in pairs(t) dosum = sum + vendreturn sum, sum/count
end
print(foo2(1,2,4,5,6,10))

【ps】table.pack是lua5.2版本之后提供的函数
结果为

28 4.6666666666667
http://www.dtcms.com/a/586285.html

相关文章:

  • 夜晚的梦
  • 销售平台网站建设方案手机网站开发建设方案
  • Git 入门教程
  • 建行企业网站如何学编程入门教程
  • 做国外直播网站有哪些宜春做网站 黑酷seo
  • 重生归来,我要成功 Python 高手--day33 决策树
  • AI大模型全景图:十大核心能力与十大应用领域详解,附学习资源(建议收藏)
  • 学习Linux——软件管理
  • 广东品牌网站建设报价表网站建设中的财务预算
  • 什么网站的易用性重庆seo网站推广费用
  • 速卖通测评自养号技术:搭建安全稳定账号体系,流量销量双突破
  • 22-webpack案例:36kr
  • PCB批量处理命令
  • 网站建设 制作教程 pdf在山东和网页有关的公司
  • Go 语言接口
  • wordpress网站如何迁移电商网站建设课程
  • Keil编译出现:Missing Compiler Version 5
  • 十大免费网站推广平台有哪些创意设计素材
  • 为什么网站浏览不是做的那样农村自建房设计图软件
  • 如何设计一份精美到ppt
  • 网站如何做ssl认证计算机网站建设是什么
  • MySQL——数据库基础
  • 配置flutter鸿蒙的环境和创建并运行第一个flutter鸿蒙项目【精心制作】
  • UE核心架构概念
  • 叙述一个网站的建设过程免费网站建设绑定域名
  • 模型理解与可解释性图表案例解读之SHAP 瀑布图(Waterfall Plot)
  • 网站建设在哪个会计科目核算游戏币网站建设成本
  • 地方招聘网站如何做推广温州市城市建设档案馆网站
  • Robotiq 2F-85/2F-140夹爪:为具身智能科研搭建物理交互核心硬件支撑
  • 关于MMDetection综述