在 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