In Luau steht nil für Nicht-Existenz oder Nichts. Es unterscheidet sich von jedem anderen Wert oder Datentyp. Sie können es verwenden, um eine Variable zu zerstören oder einen Wert in einer Tabelle zu entfernen. Es ist der einzige Wert, neben false, der nicht zu true ausgewertet wird.
Luau hat einen Garbage Collector, der Daten entfernt, die von keinem Skript mehr zugänglich sind. Für die beste Leistung sollten Sie große Variablen in lang laufenden Skripten als nil neu definieren, wenn Sie sie nicht mehr benötigen, damit der Garbage Collector sie entfernt.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- Wert des 'Tuesday'-Schlüssels ausgebenprint(dictionaryTable.Tuesday) -- 2-- 'Tuesday'-Schlüssel löschendictionaryTable.Tuesday = nil-- Wert des Schlüssels erneut ausgebenprint(dictionaryTable.Tuesday) -- nil
Sie können nil verwenden, um einige Eigenschaften von Objekten zu löschen. Zum Beispiel können Sie das Parent eines Objekts auf nil setzen, um das Objekt effektiv aus dem Spiel zu entfernen. Um das Objekt nach der Entfernung wieder ins Spiel zurückzubringen, weisen Sie das Parent erneut zu. Das folgende Beispiel zeigt, wie man nil verwendet, um einen Part zu entfernen:
local Workspace = game:GetService("Workspace")-- Einen neuen Ziegelstein erstellenlocal part = Instance.new("Part")-- Neues Teil dem Arbeitsbereich zuweisen, um es sichtbar zu machenpart.Parent = Workspacetask.wait(1)-- Das Teil aus der Sicht entfernen, aber nicht aus dem Speicherpart.Parent = niltask.wait(1)-- Teil existiert weiterhin, da es von der Variable "part" referenziert wird, sodass es wieder sichtbar gemacht werden kannpart.Parent = Workspacetask.wait(1)-- Das Teil erneut unsichtbar machenpart.Parent = nil-- Teilreferenz löschen, damit es vom Garbage Collector aufgenommen wirdpart = nil