Luau에서 nil은 존재하지 않거나 아무것도 없음을 나타냅니다. 이는 다른 값이나 데이터 유형과 다릅니다. 변수를 파괴하거나 테이블에서 값을 제거하는 데 사용할 수 있습니다. false를 제외하고는 true로 평가되지 않는 유일한 값입니다.
Luau에는 더 이상 어떤 스크립트에서도 접근할 수 없는 데이터를 제거하는 가비지 컬렉터가 있습니다. 최상의 성능을 위해 더 이상 필요 없는 대형 변수를 장기 실행 스크립트에서 nil로 재정의하여 가비지 컬렉터가 이를 제거할 수 있도록 합니다.
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- nillocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- 'Tuesday' 키의 출력 값print(dictionaryTable.Tuesday) -- 2-- 'Tuesday' 키를 지웁니다dictionaryTable.Tuesday = nil-- 키의 값을 다시 출력합니다print(dictionaryTable.Tuesday) -- nil
nil을 사용하여 객체의 일부 속성을 지울 수 있습니다. 예를 들어, 객체의 Parent를 nil로 설정하여 게임에서 객체를 효과적으로 제거할 수 있습니다. 객체를 제거한 후 게임으로 다시 반환하려면 Parent를 다시 지정합니다. 다음 예제는 Part를 제거하기 위해 nil을 사용하는 방법을 보여줍니다.
local Workspace = game:GetService("Workspace")-- 새로운 벽돌 생성local part = Instance.new("Part")-- 새로운 부분을 워크스페이스에 부모로 설정하여 볼 수 있도록 함part.Parent = Workspacetask.wait(1)-- 메모리에서 제거하지 않고 보기에서 부분을 제거part.Parent = niltask.wait(1)-- "part"라는 변수가 참조하기 때문에 부분은 여전히 존재하므로 다시 볼 수 있음part.Parent = Workspacetask.wait(1)-- 다시 부분을 보기에서 제거part.Parent = nil-- 부분 참조를 지워서 가비지 컬렉터가 수거할 수 있도록 함part = nil