ใน Luau, nil แสดงถึงการไม่มีอยู่หรือความว่างเปล่า ซึ่งแตกต่างจากค่าอื่น ๆ หรือประเภทข้อมูลอื่น ๆ คุณสามารถใช้มันเพื่อทำลายตัวแปรหรือเอาค่าถึงออกจากตาราง มันเป็นค่านั้นเพียงค่าเดียวที่นอกเหนือจาก false ซึ่งไม่ประเมินเป็น true
Luau มี การจัดการขยะ ที่ลบข้อมูลที่ไม่สามารถเข้าถึงได้โดยสคริปต์ใด ๆ สำหรับประสิทธิภาพที่ดีที่สุด ให้กำหนดค่าใหม่ให้กับตัวแปรขนาดใหญ่เป็น nil ในสคริปต์ที่รันนานเมื่อคุณไม่ต้องการมันอีกต่อไปเพื่อให้การจัดการขยะลบมันออก
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- แสดงค่าของคีย์ 'Tuesday'print(dictionaryTable.Tuesday) -- 2-- เคลียร์คีย์ 'Tuesday'dictionaryTable.Tuesday = nil-- แสดงค่าของคีย์อีกครั้งprint(dictionaryTable.Tuesday) -- nil
คุณสามารถใช้ nil เพื่อลบคุณสมบัติบางอย่างของวัตถุ ตัวอย่างเช่น คุณสามารถตั้งค่า Parent ของวัตถุเป็น nil เพื่อกำจัดวัตถุออกจากเกมอย่างมีประสิทธิภาพ เมื่อต้องการนำวัตถุกลับเข้าสู่เกมหลังจากที่คุณลบมันไปแล้ว ให้กำหนดค่า Parent อีกครั้ง ตัวอย่างต่อไปนี้แสดงวิธีการใช้ nil เพื่อลบ Part:
local Workspace = game:GetService("Workspace")-- สร้างบล็อกใหม่local part = Instance.new("Part")-- ตั้งชื่อส่วนใหม่ให้เป็นพาเรนต์เพื่อให้มองเห็นได้part.Parent = Workspacetask.wait(1)-- ลบส่วนจากการมองเห็นแต่ไม่จากหน่วยความจำpart.Parent = niltask.wait(1)-- ส่วนยังคงมีอยู่เพราะถูกอ้างอิงโดยตัวแปร "part" ดังนั้นจึงสามารถกลับมามองเห็นได้part.Parent = Workspacetask.wait(1)-- ลบส่วนจากการมองเห็นอีกครั้งpart.Parent = nil-- เคลียร์การอ้างอิงส่วนเพื่อให้ถูกจัดการโดยการจัดการขยะpart = nil