W Luau, nil reprezentuje nieistnienie lub pustkę.Różni się od dowolnej innej wartości lub wpisywaćdanych.Możesz go użyć do zniszczenia zmiennej lub usunięcia wartości w tabeli.Jest to jedyna wartość inna niż false, która nie ocenia się do true.
Luau ma gromadziciel śmieci , który usuwa dane, które nie są już dostępne dla żadnego skryptu.Aby uzyskać najlepsze wykonywanie, ponownie zdefiniuj duże zmienne jako nil w długo uruchamianych skryptach, gdy już ich nie potrzebujesz, aby zbieracz śmieci je usunął.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- niezerowylocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- Wartość wyjściowa klucza 'Wtorek'print(dictionaryTable.Tuesday) -- 2-- Wyczyść klucz 'Wtorek'dictionaryTable.Tuesday = nil-- Wartość wyjściowa klucza ponownieprint(dictionaryTable.Tuesday) -- nil
Możesz użyć nil , aby oczyścić niektóre właściwości obiektów.Na przykład możesz ustawić Parent obiektu na nil w celu skutecznego usunięcia obiektu z doświadczenia.Aby zwrócić obiekt do doświadczenia po jego usunięciu, przypisz ponownie Parent.Poniższy przykład pokazuje, jak używać nil, aby usunąć Part:
local Workspace = game:GetService("Workspace")-- Stwórz nową cegłęlocal part = Instance.new("Part")-- Rodzic nową część do przestrzeni roboczej, sprawiając, że jest ona widocznapart.Parent = Workspacetask.wait(1)-- Usuń część z widoku, ale nie z pamięcipart.Parent = niltask.wait(1)-- Część nadal istnieje, ponieważ jest odwoływana przez zmienną "część", więc można ją zwrócić do widokupart.Parent = Workspacetask.wait(1)-- Usuń część z widoku ponowniepart.Parent = nil-- Wyczyść odniesienie części, aby zostało odebrane przez zbieracza śmiecipart = nil