2013-02-19 24 views
5

はコードです:LUAでアレイのサイズを取得する方法は?ここ

users = {} 
users["aaa"] = "bbbb"; 
users["bbb"] = "bbbb"; 
users["ccc"] = "bbbb"; 
print("Users count ", table.getn(users)); 

table.getn(ユーザー)は、常に0を返すのはなぜ?ところで、#usersも0を返します。だから私は間違ったことをしていますし、配列の要素の量を得る別の方法がありますか?

+0

いいえ、私は何を書いても常に0を返します。これらのメソッドは配列のハッシュ/文字列キーインデックス型では機能しません。 – Tutankhamen

+0

正確に。それは、そのページの答えがあなたに伝えるものです。それはあなたの正確な質問です:空ではないが配列要素を持たないテーブル。 –

答えて

12

table.maxnと#数値インデックスを探します。あなたの文字列のインデックスは表示されません。

任意のインデックスを持つ配列の要素数を取得するためとして、私はおそらくのようなものでアレイを歩きたい:

Count = 0 
for Index, Value in pairs(Victim) do 
    Count = Count + 1 
end 

を私は馬鹿です。

+0

ありがとう、私はそれを知っていますが、O(n)メソッドではなくO(1)が必要です。私はそういうものがあるはずだと思う。私が間違っている? – Tutankhamen

+1

@Tutankhamen:そのようなものが存在すると思ってもそれはそうにはならないでしょう。それに、どうしてそれは問題なの?これらのフィールドに数値インデックスでアクセスすることはできません。なぜ、その数がどれくらいあるか知る必要がありますか? –

+0

たとえば、セッションあたり最大30人のユーザーを持つことができるので、すでにそこにどれくらいいるか知りたいのですが – Tutankhamen

関連する問題