Nghe giống như một câu hỏi "hãy để tôi google nó cho bạn", nhưng bằng cách nào đó tôi không thể tìm thấy câu trả lời. #
Toán tử Lua chỉ đếm các mục với các khóa nguyên và cũng vậy 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"
Làm thế nào để tôi có được số lượng của tất cả các mục mà không cần đếm chúng?
#
toán tử chỉ là định nghĩa sai. Điều này rất dễ sửa chữa: thứ nhất, đưa ra #
quyết định và thứ hai, giới thiệu một toán tử hoặc hàm mới để có được số đếm. Kết thúc câu chuyện ... Tại sao họ phải bướng bỉnh như vậy? :)
dictionary[value] = #dictionary + 1
, nơi#
đại diện cho số lượng của tất cả các đối tượng. Điều tôi thắc mắc là tại sao bạn không muốn điều này: trong tất cả các trường hợp sử dụng lành mạnh cho # (xem câu trả lời của kaizer.se), số lượng của tất cả các đối tượng chính xác bằng với những gì # đã trả về; có vẻ như làm cho # đếm mọi thứ hoàn toàn là một sự cải tiến. Tất nhiên tôi là người mới Lua và có thể bị mất điểm.