「グーグルで教えて」という質問のようですが、どういうわけか答えが見つかりません。Lua #
演算子は整数キーを持つエントリのみをカウントし、そうしtable.getn
ます:
tbl = {}
tbl["test"] = 47
tbl[1] = 48
print(#tbl, table.getn(tbl)) -- prints "1 1"
count = 0
for _ in pairs(tbl) do count = count + 1 end
print(count) -- prints "2"
カウントせずにすべてのエントリの数を取得するにはどうすればよいですか?
#
演算子は不明確です。これは非常に簡単に修正できます。1つ目は#
決定論的で、もう1つは新しい演算子または関数を導入してダーンカウントを取得します。物語の終わり...なぜ彼らはそんなに頑固でなければならないのですか?:)
dictionary[value] = #dictionary + 1
、#
はすべてのオブジェクトの数を表します。どのような私が疑問に思うことは、あなたが理由ではありませんすべてに:これが欲しい正気の#のためのユースケース(kaizer.seで答えを参照)、すべてのオブジェクトの数はすでに何#リターンと正確に一致しています。#すべてをカウントすることは厳密に改善のようです。もちろん、私はLuaの初心者なので、要点を逃している可能性があります。