วิธีใดที่มีประสิทธิภาพที่สุดในการพิจารณาว่าตารางว่างเปล่า (นั่นคือปัจจุบันไม่มีทั้งค่าสไตล์อาร์เรย์หรือค่าสไตล์คำสั่ง)
ขณะนี้ฉันใช้next()
:
if not next(myTable) then
-- Table is empty
end
มีวิธีที่มีประสิทธิภาพมากกว่านี้หรือไม่?
หมายเหตุ: ตัว#
ดำเนินการไม่เพียงพอที่นี่เนื่องจากมันทำงานเฉพาะกับค่าสไตล์อาร์เรย์ในตารางดังนั้นจึง#{test=2}
แยกไม่ออก#{}
เนื่องจากทั้งสองส่งคืน 0 โปรดทราบว่าการตรวจสอบว่าตัวแปรตารางnil
ไม่เพียงพอหรือไม่เนื่องจากฉันไม่ได้มองหา ค่าศูนย์ แต่เป็นตารางที่มี 0 รายการ (เช่น{}
)
false
จะไม่ใช่คีย์ที่คาดหวังดังนั้นการใช้if not
งานได้ดี แต่ฉันอาจจะสร้างนิสัยในการเปรียบเทียบnil
แทนในอนาคตเช่นเดียวกับนิสัยที่ดี และใช่ฉันได้ผูกฟังก์ชันยูทิลิตี้ทั่วไปเข้ากับตัวแปรท้องถิ่นเพื่อความเร็ว ขอบคุณสำหรับข้อมูล