*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

在 Luau 中,nil 代表无存在或无效。与任何其他值或数据输入不同。您可以使用它来摧毁变量或在表中删除值。它是除了 false 以外唯一的值,不会评估为 true

Luau 有一个 垃圾收集器 ,可以移除任何脚本无法访问的数据。为了获得最佳性能,当您不再需要它们时,在长时间运行的脚本中重定义大变量为 nil 以便垃圾收集器删除它们


local variableToDelete = 5
print(variableToDelete) -- 5
variableToDelete = nil
print(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 = Workspace
task.wait(1)
-- 从视图中删除零件,但不从内存中删除
part.Parent = nil
task.wait(1)
-- 部分仍然存在,因为它被变量 "部分" 引用,因此可以返回查看
part.Parent = Workspace
task.wait(1)
-- 再次从视图中移除零件
part.Parent = nil
-- 清除零件参考,以便被垃圾收集器捡起
part = nil