數組元素個數計算


數組元素一定是從1開始的,順序遞增且不包含元素nil。只有這種情況才能正確的計算個數

數組與HASH並存,數組索引從1開始順序遞增,且值不能未Nil

 

local a1 = { 1, 2, 3 }

local a2 = { [1]=1,  [3]=2,  [5]=3,  [7]=4 }

local a3 = { [2]=3, [10]=2, [20]=2 }

local a4 = { 2, name='yuanbl', 3, age=25, 5, 9 }

local a5 = { name='yuanbl', age=25, sex='男'}

local a6 = { 2, name='yuanbl', 3, age=25, 5, 9, hello=nil, 10 }

計算(# 或 table.getn())結果如下:

3

1

2

4

0

5

它是怎么做到的?

分析: table.getn(t) 和 #t 一樣都是計算數組元素但不包括hash鍵值,並且數組元素一定是從1開始的,順序遞增且不包含元素nil。只有這種情況才能正確的計算個數,可知a1正確;再來分析a2,查找1成立,接着查找2,沒有找到,結束查找,返回結果為1;a3不滿足條件產生呵呵的結果;a4、a5、a6同理可分析。



作者:Uzero
鏈接:https://www.jianshu.com/p/e9f6d85b57b9
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

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



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