W Luau, nil reprezentuje nieistnienie lub nic. Różni się od każdej innej wartości lub typu danych. Możesz go użyć do zniszczenia zmiennej lub usunięcia wartości w tabeli. Jest to jedyna wartość poza false, która nie ocenia się na true.
Luau ma zbieracz śmieci, który usuwa dane, które nie są już dostępne dla żadnego skryptu. Dla najlepszej wydajności, redefiniuj duże zmienne jako nil w długoterminowych skryptach, gdy już ich nie potrzebujesz, aby zbieracz śmieci je usunął.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Poniedziałek = 1,Wtorek = 2,Środa = 3}-- Wypisz wartość klucza 'Wtorek'print(dictionaryTable.Wtorek) -- 2-- Wyczyść klucz 'Wtorek'dictionaryTable.Wtorek = nil-- Wypisz wartość klucza ponownieprint(dictionaryTable.Wtorek) -- nil
Możesz użyć nil do wyczyszczenia niektórych właściwości obiektów. Na przykład, możesz ustawić Parent obiektu na nil, aby skutecznie usunąć obiekt z gry. Aby przywrócić obiekt do gry po usunięciu, przypisz ponownie Parent. Następny przykład pokazuje, jak użyć nil, aby usunąć Part:
local Workspace = game:GetService("Workspace")-- Utwórz nowy kloceklocal part = Instance.new("Part")-- Ustaw nowy klocek jako rodzica do workspace, aby był widocznypart.Parent = Workspacetask.wait(1)-- Usuń klocek z widoku, ale nie z pamięcipart.Parent = niltask.wait(1)-- Klocek nadal istnieje, ponieważ jest referencjonowany przez zmienną "part", więc może zostać przywrócony do widokupart.Parent = Workspacetask.wait(1)-- Usuń klocek z widoku ponowniepart.Parent = nil-- Wyczyść referencję do klocka, aby mógł być przechwycony przez zbieracza śmiecipart = nil