Lua數組刪除元素


Lua中刪除table的一個元素一般通過賦值nil完成。通常,我們理解數組中刪除一個元素,以后訪問的時候下標仍然是從0,1,2,3開始的。Lua的table可以表示數組,下標為1,2,3,4...,然而刪除里面的元素與再次訪問它時要特別小心,因為你不能仍然認為下標是1,2,3,4...

例一

 1 function print_t(t)
 2     for k,v in pairs(t) do
 3         print(k,v)
 4     end
 5 end
 6 
 7 t={1,2,3,4,5}
 8 
 9 print_t(t)
10 print('--------------------')
11 
12 t[1]=nil
13 print_t(t)

簡單的把第一個元素賦值為nil,輸出是

可以看到,key是2,3,4,5

稍微改動一下,看看ipairs的效果

例二

 1 function print_t(t)
 2     for k,v in ipairs(t) do--使用ipairs
 3         print(k,v)
 4     end
 5 end
 6 
 7 t={1,2,3,4,5}
 8 
 9 print_t(t)
10 print('--------------------')
11 
12 t[1]=nil
13 print_t(t)

運行結果如下

根本不能訪問得到元素了。如果還想當然以為會取到2,3,4,5的值,就大錯特錯了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM