Em Luau, nil representa não existência ou nada. É diferente de qualquer outro valor ou tipo de dado. Você pode usá-lo para destruir uma variável ou remover um valor em uma tabela. É o único valor além de false que não é avaliado como true.
Luau tem um coletor de lixo que remove dados que não estão mais acessíveis por nenhum script. Para melhor desempenho, redefina variáveis grandes como nil em scripts de longa duração quando você não precisar mais delas, para que o coletor de lixo as remova.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- Saída do valor da chave 'Tuesday'print(dictionaryTable.Tuesday) -- 2-- Limpar a chave 'Tuesday'dictionaryTable.Tuesday = nil-- Saída do valor da chave novamenteprint(dictionaryTable.Tuesday) -- nil
Você pode usar nil para limpar algumas propriedades de objetos. Por exemplo, você pode definir o Parent de um objeto como nil para efetivamente remover o objeto do jogo. Para retornar o objeto ao jogo após removê-lo, reatribua o Parent. O seguinte exemplo demonstra como usar nil para remover uma Part:
local Workspace = game:GetService("Workspace")-- Criar um novo blocolocal part = Instance.new("Part")-- Definir o novo bloco como filho do workspace, tornando-o visívelpart.Parent = Workspacetask.wait(1)-- Remover o bloco da vista, mas não da memóriapart.Parent = niltask.wait(1)-- O bloco ainda existe porque está referenciado pela variável "part", então pode ser retornado à vistapart.Parent = Workspacetask.wait(1)-- Remover o bloco da vista novamentepart.Parent = nil-- Limpar a referência do bloco para que ele seja coletado pelo coletor de lixopart = nil