Kulağa "senin için google'layayım" sorusuna benziyor, ancak bir şekilde yanıt bulamıyorum. Lua #
operatörü yalnızca tamsayı anahtarlı girişleri sayar ve bu şekilde 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"
Tüm girişlerin sayısını saymadan nasıl alabilirim ?
#
operatör sadece kötü tanımlanmış. Bu çok kolay bir şekilde düzeltilebilir: birincisi, #
deterministik yapın ve ikinci olarak, kesin sayımı elde etmek için yeni bir operatör veya işlev ekleyin. Hikayenin sonu ... Neden bu kadar inatçı olmak zorundalar? :)
dictionary[value] = #dictionary + 1
,#
sayısını temsil tüm nesneler. Ne ben sana neden acaba olduğunu yok bunu istiyor: tüm aklı başında # (kaizer.se tarafından cevap bakınız) kullanım durumları, bütün nesnelerin sayısı tam olarak zaten neyi # getirilere eşit; Her şeyi # saymak kesinlikle bir gelişme gibi görünüyor. Tabii ki ben bir Lua acemisiyim ve asıl noktayı kaçırıyor olabilirim.