参考:https://blog.csdn.net/qq_32319583/article/details/53384945
代码部分
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-- 初始化一个数组,数组中不存在为nil local t = { 1, "a", "a", 2, 4, 5, 6, 7, "a"} print("设置前t的长度为 : " .. #t) for i=#t,1,-1 do if t[i] ~= "a" then t[i] = nil -- 第一步 -- table.remove(t, i) -- 第二步 end print(i, t[i]) end print("-------分割线----------") for k,v in pairs(t) do print(k,v) end print("-------分割线----------") print("设置后t的长度为 : " .. #t)
看注释标有第一步的输出打印
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17设置前t的长度为 : 9 9 a 8 nil 7 nil 6 nil 5 nil 4 nil 3 a 2 a 1 nil -------分割线---------- 2 a 3 a 9 a -------分割线---------- 设置后t的长度为 : 9
看注释第二步的输出打印
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17设置前t的长度为 : 9 9 a 8 a 7 a 6 a 5 a 4 a 3 a 2 a 1 a -------分割线---------- 1 a 2 a 3 a -------分割线---------- 设置后t的长度为 : 3
结论:
如果单纯将数组中的值设为nil,#t的长度可能不会变
要想得到正确的结果,最好用table.remove(t, k)
最后
以上就是酷酷母鸡最近收集整理的关于Lua 将数组中的某些value设置为nil,打印#数组的长度遇到的问题。的全部内容,更多相关Lua内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复