Luau では、 nil は存在しないことまたは空白を表します。他の値またはデータタイプとは異なります。変数を破壊したり、テーブルの値を削除したりするのに使用できます。それは false 以外の唯一の値で、 true に評価されない。
Luau には ゴミ集め機 があり、スクリプトでアクセスできなくなったデータを削除します。最高のパフォーマンスを得るには、大きな変数を再定義して nil 長時間実行されるスクリプトで必要がなくなったので、ガビングコレクターが削除するようにします。
local variableToDelete = 5print(variableToDelete) -- 5variableToDelete = nilprint(variableToDelete) -- なしlocal dictionaryTable = {Monday = 1,Tuesday = 2,Wednesday = 3}-- 「火曜日」キーの出力値print(dictionaryTable.Tuesday) -- 2-- 「火曜日」キーをクリアdictionaryTable.Tuesday = nil-- キーの出力値再びprint(dictionaryTable.Tuesday) -- nil
nil を使用して、オブジェクトのいくつかのプロパティをクリアできます。たとえば、オブジェクトの Parent を nil に設定して、効果的にオブジェクトをエクスペリエンスから削除できます。オブジェクトを削除した後、エクスペリエンスに戻すには、Parent を再割り当てします。次の例では、nil を使用して Part を削除する方法を示します:
local Workspace = game:GetService("Workspace")-- 新しいブリックを作成local part = Instance.new("Part")-- ワークスペースに新しいパーツを親にして、表示可能にするpart.Parent = Workspacetask.wait(1)-- パーツをビューから削除しますが、メモリからは削除しませんpart.Parent = niltask.wait(1)-- パーツはまだ存在しているので、変数 "パーツ" に参照されているので、表示に戻すことができますpart.Parent = Workspacetask.wait(1)-- パーツを再びビューから削除part.Parent = nil-- パーツ参照をクリアして、ガビジェットコレクターがピックアップしますpart = nil