Kedengarannya seperti pertanyaan "biarkan saya google untuk Anda", tetapi entah bagaimana saya tidak dapat menemukan jawaban. #
Operator Lua hanya menghitung entri dengan kunci integer, dan begitu juga 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"
Bagaimana cara saya mendapatkan jumlah semua entri tanpa menghitungnya?
#
operator hanya tidak jelas. Ini sangat mudah diperbaiki: pertama, buat #
deterministik, dan kedua, kenalkan operator atau fungsi baru untuk mendapatkan jumlah yang sangat berarti. Akhir cerita ... Mengapa mereka harus begitu keras kepala? :)
dictionary[value] = #dictionary + 1
, di mana#
merepresentasikan jumlah semua objek. Yang saya heran adalah mengapa Anda tidak menginginkan ini: dalam semua kasus penggunaan # untuk waras (lihat jawaban oleh kaizer.se), jumlah semua objek persis sama dengan apa yang sudah # dikembalikan; sepertinya membuat # hitung semuanya benar-benar perbaikan. Tentu saja saya seorang pemula Lua dan mungkin kehilangan intinya.