LUA 删除元素的问题

LUA 删除元素的问题

table在删除元素时要注意,例
t = { "hello", "world", "!"}
t[1] = nil
此时print(#t) --输出3,就是说把表的元素置为nil并没有移除该表项。

但,若是:

t = {
[1] = nil,
[2] = 223,
[3] = nil
}

function count(t)
    local c = 0
    for k, v in pairs(t) do
        c = c + 1
    end
    return c
end

print(count(t))--1

 再看更诡异的

 1 t = {
 2 [1] = 12,
 3 [2] = nil,
 4 [3] = 4
 5 }
 6 
 7 function count(t)
 8     local c = 0
 9     for k, v in pairs(t) do
10         c = c + 1
11     end
12     return c
13 end
14 
15 print("------------------", #t)
16 t2 = { "hello", "world", "!"}
17 t2[1] = nil
18 t2[22] = nil
19 t2[9] = nil
20 print("--------t2---------", #t2)
21 for k, v in pairs(t2) do
22     print(k, v)
23 end
24 
25 print("--------------->")
26 for i=1, #t2 do
27     print(i, t2[i])
28 end

 

posted on 2017-02-16 09:51 时空观察者9号 阅读(...) 评论(...) 编辑 收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值