Dans Luau, nil représente l'inexistence ou le néant. C'est différent de toute autre valeur ou type de données. Vous pouvez l'utiliser pour détruire une variable ou supprimer une valeur dans une table. C'est la seule valeur autre que false qui ne s'évalue pas à true.
Luau dispose d'un ramasse-miettes qui supprime les données qui ne sont plus accessibles par aucun script. Pour de meilleures performances, redéfinissez les grandes variables comme nil dans les scripts de longue durée lorsque vous n'en avez plus besoin afin que le ramasse-miettes puisse les supprimer.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- Afficher la valeur de la clé 'Tuesday'print(dictionaryTable.Tuesday) -- 2-- Effacer la clé 'Tuesday'dictionaryTable.Tuesday = nil-- Afficher la valeur de la clé à nouveauprint(dictionaryTable.Tuesday) -- nil
Vous pouvez utiliser nil pour effacer certaines propriétés des objets. Par exemple, vous pouvez définir le Parent d'un objet sur nil pour supprimer efficacement l'objet du jeu. Pour retourner l'objet dans le jeu après l'avoir supprimé, réaffectez le Parent. L'exemple suivant démontre comment utiliser nil pour supprimer une Part :
local Workspace = game:GetService("Workspace")-- Créer une nouvelle briquelocal part = Instance.new("Part")-- Parent la nouvelle partie au workspace, la rendant visiblepart.Parent = Workspacetask.wait(1)-- Supprimer la partie de la vue mais pas de la mémoirepart.Parent = niltask.wait(1)-- La partie existe toujours car elle est référencée par la variable "part", elle peut donc être rendue de nouveau visiblepart.Parent = Workspacetask.wait(1)-- Supprimer la partie de la vue à nouveaupart.Parent = nil-- Effacer la référence de la partie pour qu'elle soit récupérée par le ramasse-miettespart = nil