ดูเหมือนคำถาม "ให้ฉันใช้ Google ให้คุณ" แต่ฉันไม่สามารถหาคำตอบได้ ตัว#
ดำเนินการ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"
ฉันจะรับจำนวนรายการทั้งหมดโดยไม่นับได้อย่างไร
#
ดำเนินการนั้นไม่ถูกกำหนดไว้ สิ่งนี้สามารถแก้ไขได้ง่ายมาก: ประการแรกทำการ#
กำหนดค่าและประการที่สองแนะนำตัวดำเนินการหรือฟังก์ชันใหม่เพื่อรับจำนวนยี้ห้อ จบเรื่อง ... ทำไมพวกเขาต้องดื้อขนาดนี้? :)
dictionary[value] = #dictionary + 1
ที่#
แสดงถึงจำนวนของวัตถุทั้งหมด สิ่งที่ฉันสงสัยคือทำไมคุณไม่ต้องการสิ่งนี้: ในทุกกรณีการใช้งานที่มีเหตุผลสำหรับ # (ดูคำตอบโดย kaizer.se) จำนวนของวัตถุทั้งหมดจะเท่ากับสิ่งที่ # ส่งคืนแล้ว ดูเหมือนว่าการ # นับทุกอย่างเป็นการปรับปรุงอย่างเคร่งครัด แน่นอนว่าฉันเป็นมือใหม่ของ Lua และอาจจะพลาดประเด็นนี้ไป