En Luau, nil representa la no existencia o la nada. Es diferente de cualquier otro valor o tipo de dato. Puedes usarlo para destruir una variable o eliminar un valor en una tabla. Es el único valor, además de false, que no se evalúa como true.
Luau tiene un recolector de basura que elimina datos que ya no son accesibles por ningún script. Para obtener el mejor rendimiento, redefine variables grandes como nil en scripts de larga duración cuando ya no las necesites para que el recolector de basura las elimine.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Lunes = 1,Martes = 2,Miércoles = 3}-- Salida del valor de la clave 'Martes'print(dictionaryTable.Martes) -- 2-- Limpiar la clave 'Martes'dictionaryTable.Martes = nil-- Salida del valor de la clave nuevamenteprint(dictionaryTable.Martes) -- nil
Puedes usar nil para limpiar algunas propiedades de objetos. Por ejemplo, puedes establecer el Parent de un objeto en nil para eliminar efectivamente el objeto del juego. Para devolver el objeto al juego después de quitarlo, reasigna el Parent. El siguiente ejemplo demuestra cómo usar nil para eliminar un Part:
local Workspace = game:GetService("Workspace")-- Crear un nuevo ladrillolocal part = Instance.new("Part")-- Parentear la nueva parte al espacio de trabajo, haciéndola visiblepart.Parent = Workspacetask.wait(1)-- Eliminar la parte de la vista pero no de la memoriapart.Parent = niltask.wait(1)-- La parte aún existe porque está referenciada por la variable "part", así que puede ser devuelta a la vistapart.Parent = Workspacetask.wait(1)-- Eliminar la parte de la vista nuevamentepart.Parent = nil-- Limpiar la referencia de la parte para que sea recogida por el recolector de basurapart = nil