local table_a = {}數組
判斷一:(錯誤方法)
if table_a == {} then
--你會發現你怎麼也進不來 條件判斷始終返回false,爲何會這樣呢?
--緣由:{}至關於建立了一個表,只不過這個表的名字是匿名的,你看不到,咱們假設它叫table_b
--你會發現判斷條件變成了比較table_a、table_b的內存地址。因此條件判斷始終返回false。
--正確的實現方法:判斷二
endui
判斷二:(正確方法)spa
if next(table_a) == nil then
--你想實現的操做
endcode
--成功緣由:next獲取表中的下一個內容,在空表裏是沒有下一個內容的,返回nil索引
//怎麼求table的長度呢內存
對於一個數組咱們一般能夠使用#和table.getn來獲取其長度get
使用這兩種方法都能獲得這個數組的長度,可是若是table
發現不能得到咱們數組真正的長度,這是由於數組默認遇到nil便被判斷爲數組結束,因此最好不要用#和table.getn來獲取包含有nil的數組長度class
對於table來講,若是他不是數組,咱們使用#和table.getn是不能獲取它的長度的test
咱們能夠使用pairs來獲取
注意#只能獲取索引爲連續數字的長度,若是不連續,只能獲取到連續的地方,其餘地方被捨棄。