Trong Luau, nil đại diện cho sự không tồn tại hoặc không có gì.Nó khác với bất kỳ giá trị hoặc đánh máydữ liệu nào khác.Bạn có thể sử dụng nó để phá hủy một biến hoặc xóa một giá trị trong bảng.Nó là giá trị duy nhất không phải là false được đánh giá thành true .
Luau có một thu thập rác loại bỏ dữ liệu không còn truy cập được bởi bất kỳ kịch bản nào.Để có hiệu lựctốt nhất, hãy xác định lại các biến lớn như nil trong các kịch bản chạy lâu dài khi bạn không cần chúng nữa để thu thập rác loại bỏ chúng.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- không cólocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- Giá trị ra của chìa khóa 'Tuesday'print(dictionaryTable.Tuesday) -- 2-- Xóa chìa khóa 'Thứ ba'dictionaryTable.Tuesday = nil-- Giá trị ra của chìa khóa lạiprint(dictionaryTable.Tuesday) -- nil
Bạn có thể sử dụng nil để xóa một số thuộc tính của đối tượng.Ví dụ, bạn có thể đặt Parent của một đối tượng thành nil để hiệu quả loại bỏ đối tượng khỏi trải nghiệm.Để trả lại đối tượng cho trải nghiệm sau khi bạn xóa nó, hãy chuyển lại Parent .Ví dụ sau đây minh họa cách sử dụng nil để xóa một Part:
local Workspace = game:GetService("Workspace")-- Tạo một khối mớilocal part = Instance.new("Part")-- Phần mới cha cho không gian làm việc, làm cho nó có thể nhìn thấypart.Parent = Workspacetask.wait(1)-- Loại bỏ phần khỏi tầm nhìn nhưng không phải khỏi bộ nhớpart.Parent = niltask.wait(1)-- Phần vẫn tồn tại vì nó được tham chiếu bởi biến "part", vì vậy nó có thể được trả về để xempart.Parent = Workspacetask.wait(1)-- Loại bỏ phần khỏi tầm nhìn một lần nữapart.Parent = nil-- Xóa tham chiếu phần để nó được thu thập bởi người thu thập rácpart = nil