o365邮箱登录-365bet提款速度-外勤365官方网站

老程序员分享:Lua的unpack-阿里云开发者社区

老程序员分享:Lua的unpack-阿里云开发者社区

"

原文:

用法

unpack它接受一个数组(table)作为参数,并默认从下标1开始返回数组的所有元素

arrayData = {""a"",""b"",""c"",""d"",""e""}

print(arrayData) -- 打印数组的地址

print(table.unpack(arrayData)) -- 从第1//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDEzMTI5Ng==.html

个开始打印数组

//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDEzNDYyMA==.html

print(table.unpack(arrayData, 2)) --从第2个开始打印数组

print(table.unpack(arrayData, 1, 3)) --从第一个打印3个数据

注意:在Lua5.1中,unpack是全局函数,可以直接使用,但是在Lua5.2中,unpack被移到table.unpack,所以在Lua5.2以后要用table.unpack替代unpack。

如果遇到数组下有nil,或者有字母key的时候

local info={1,2,3,nil,5,p=6}

local a,b,c,d,e,f=unpack(info)

print(a,b,c,d,e,f)

输出结果:

1 2 3 nil 5 nil

关于不定数量参数的处理

5.1版本及以前可直接处理

local function fun1(...)

print(unpack(arg))

end

fun1(1,nil,3) //1,nil,3

5.2版本以后需要手动转化

local function fun2(...)

local arg = { ... }

print(table.unpack(arg))

end

fun2(1,nil,3) //1,nil,3

table.length问题

如果参数是{nil, 2, nil}, 就无法正常打印出来,也就是说有nil值的时候,#table的计算结果并不确定

"

相关推荐
三人成虎
外勤365官方网站

三人成虎

📅 07-09 🔥 545
人不胖但是手指特别胖怎么回事,怎么办
o365邮箱登录

人不胖但是手指特别胖怎么回事,怎么办

📅 11-09 🔥 809
苹果Mac系统怎么彻底关闭开机的声音?
o365邮箱登录

苹果Mac系统怎么彻底关闭开机的声音?

📅 09-20 🔥 927
路虎的质量,还是那么不堪一击吗?
o365邮箱登录

路虎的质量,还是那么不堪一击吗?

📅 08-09 🔥 558
王者荣耀一个房间多久
外勤365官方网站

王者荣耀一个房间多久

📅 08-06 🔥 965