Trong Luau, nil đại diện cho sự không tồn tại hoặc hư vô. Nó khác với bất kỳ giá trị hoặc kiểu dữ liệu nào khác. Bạn có thể sử dụng nó để xóa một biến hoặc loại bỏ một giá trị trong một bảng. Đây là giá trị duy nhất khác ngoài false không đánh giá thành true.
Luau có một trình thu gom rác loại bỏ dữ liệu mà không còn có thể truy cập bởi bất kỳ kịch bản nào. Để đạt hiệu suất tốt nhất, hãy định nghĩa lại các biến lớn thành nil trong các kịch bản chạy lâu khi bạn không còn cần chúng nữa để trình thu gom rác có thể loại bỏ chúng.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- Xuất giá trị của khóa 'Tuesday'print(dictionaryTable.Tuesday) -- 2-- Xóa khóa 'Tuesday'dictionaryTable.Tuesday = nil-- Xuất giá trị của khóa một lần nữaprint(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ò chơi. Để đưa đối tượng trở lại trò chơi sau khi bạn loại bỏ nó, hãy gán lại Parent. Ví dụ dưới đây minh họa cách sử dụng nil để loại bỏ một Part:
local Workspace = game:GetService("Workspace")-- Tạo một viên gạch mớilocal part = Instance.new("Part")-- Đặt đối tượng mới vào trong workspace, làm cho nó có thể xem đượcpart.Parent = Workspacetask.wait(1)-- Loại bỏ viên gạch khỏi tầm nhìn nhưng không khỏi bộ nhớpart.Parent = niltask.wait(1)-- Viên gạch vẫn tồn tại vì nó được tham chiếu bởi biến "part", vì vậy nó có thể được đưa trở lại tầm nhìnpart.Parent = Workspacetask.wait(1)-- Loại bỏ viên gạch khỏi tầm nhìn một lần nữapart.Parent = nil-- Xóa tham chiếu phần để nó được thu gom bởi trình thu gom rácpart = nil