9

コードは次のとおりです。

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

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

4

1 に答える 1

17

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

任意のインデックスを持つ配列内の要素の数を取得することに関しては、おそらく次のようなものを使用して配列をウォークします。

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

でも私はばかです。

于 2013-02-19T23:53:41.390 に答える