下面是一個代碼:如何獲取LUA中數組的大小?
users = {}
users["aaa"] = "bbbb";
users["bbb"] = "bbbb";
users["ccc"] = "bbbb";
print("Users count ", table.getn(users));
爲什麼table.getn(用戶)總是返回0?順便說一句,#users也會返回0。所以,我做錯了什麼,還有另一種方法來獲取數組中的元素數量?
下面是一個代碼:如何獲取LUA中數組的大小?
users = {}
users["aaa"] = "bbbb";
users["bbb"] = "bbbb";
users["ccc"] = "bbbb";
print("Users count ", table.getn(users));
爲什麼table.getn(用戶)總是返回0?順便說一句,#users也會返回0。所以,我做錯了什麼,還有另一種方法來獲取數組中的元素數量?
table.maxn和#查找數字索引;他們不會看到你的字符串索引。
如您向任意索引數組中元素的個數,我可能會走的陣列使用類似:
Count = 0
for Index, Value in pairs(Victim) do
Count = Count + 1
end
,但我是個白癡。
謝謝,我知道,但我需要O(1),而不是O(n)方法。我認爲應該有這樣的事情。我錯了嗎? – Tutankhamen 2013-02-19 23:57:09
@Tutankhamen:認爲這樣的事情存在並不會如此。此外,它爲什麼重要?你不能通過數字索引訪問這些字段,那麼爲什麼你需要知道有多少? – 2013-02-20 00:17:01
例如 - 我可以有多達30個用戶每個會話,所以,我想知道多少已經存在,等等。 – Tutankhamen 2013-02-20 00:23:27
不,不管我寫什麼,它總是返回0。它看起來像這些方法不適用於散列/字符串鍵索引類型的數組... – Tutankhamen 2013-02-19 23:59:13
沒錯。這就是頁面上的答案告訴你的。這是你確切的問題:一個不是空的表,但沒有數組元素。 – 2013-02-20 00:16:05