lua可变参数
遍历可变参数
local function Test1(...) local argCnt = select("#", ...) for i=1,argCnt do local item = select(i, ...) print(i, item) end end Test1(4, 5, 6)
遍历可变参数方式2
local function Test2(...) local args = {...} for i, v in ipairs(args) do print(i, v) end end Test2(7, 8, 9)
可变参数返回
local function Test3(...) return ... end print(Test(1, 2, 3))
可变参数传递
local function Test4(...) print("var args:", ...) end local function Test5(...) Test4(...) end Test5(1, 2, 3)
关于select函数
print(select(3, "a", "b", "c", "d")) --返回第3~最后一个元素,即打印:c d
local function Test7(...) local i, j, k = select(2, ...) print(i, j, k) end Test7("a", "b", "c", "d", "e") -- i, j, k分别为b, c, d
关于pack和unpack函数
1) lua 5.1:unpack在全局空间_G里面;没有pack函数,可以用{...}
2) 5.2及之后的版本:unpack移到了table.unpack中;有table.pack,也支持{...}
unpack的作用:将table解包为独立的多个数据,比如可以将table解包后传给可变参数
local function Test6(...) print("var args:", ...) end local data = {"a", "b", "c"} Test6(unpack(data)) -- lua 5.1 Test6(table.unpack(data)) -- lua 5.2及之后的版本
参考
lua中的可变长参数...,pack,unpack,select方法 - 哔哩哔哩 (bilibili.com)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2023-07-28 ugui模仿 - InputField光标的显示,闪烁,左右移动
2023-07-28 ==和ReferenceEquals区别