在 Luau 中,nil 代表無存在或無效。與任何其他值或資料輸入不同。您可以使用它來摧毀變量或在表中移除值。它是除了 false 以外唯一的值,不會評估為 true 。
Luau 具有 垃圾收集器 ,可移除任何指令碼無法訪問的數據。為了最佳履約,當您不再需要大變量時,在長時間運行的腳本中重新定義大變量為 nil ,以便垃圾收集器將它們移除。
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- 無local dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- 「星期二」鍵匙的輸出值print(dictionaryTable.Tuesday) -- 2-- 清除「星期二」鑰鍵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.Parent = Workspacetask.wait(1)-- 再次從視覺中移除零件part.Parent = nil-- 清除零件參考,以便被垃圾收集器拾取part = nil