In Luau, nil rappresenta l'inesistenza o il nulla.È diverso da qualsiasi altro valore o inserisci / scrividi dati.Puoi usarlo per distruggere una variabile o rimuovere un valore in una tabella.È l'unico valore diverso da false che non si valuta a true .
Luau ha un raccoglitore di spazzatura che rimuove i dati che non sono più accessibili da nessuno script.Per le migliori Prestazione, ridefinisci le grandi variabili come nil in script di lunga esecuzione quando non ne hai più bisogno in modo che il raccoglitore di garbage le rimuova.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nullalocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- Valore di output della chiave 'Tuesday'print(dictionaryTable.Tuesday) -- 2-- Cancella chiave 'Martedì'dictionaryTable.Tuesday = nil-- Valore di output della chiave di nuovoprint(dictionaryTable.Tuesday) -- nil
Puoi usare nil per cancellare alcune proprietà degli oggetti.Ad esempio, puoi impostare il Parent di un oggetto a nil per rimuovere efficacemente l'oggetto dall'esperienza.Per restituire l'oggetto all'esperienza dopo averlo rimosso, riassegnare il Parent .L'esempio seguente mostra come utilizzare nil per rimuovere un Part :
local Workspace = game:GetService("Workspace")-- Crea un nuovo Mattonelocal part = Instance.new("Part")-- Nuova parte genitrice allo spazio di lavoro, rendendola visibilepart.Parent = Workspacetask.wait(1)-- Rimuovi la parte dalla vista ma non dalla memoriapart.Parent = niltask.wait(1)-- La parte esiste ancora perché è referenziata dalla variabile "part", quindi può essere restituita in vistapart.Parent = Workspacetask.wait(1)-- Rimuovi nuovamente la parte dalla vistapart.Parent = nil-- Rimuovi il riferimento alla parte in modo che venga raccolta dal raccoglitore di spazzaturapart = nil