2016-11-26 6 views
1

参照先のテーブルを削除するにはどうすればよいですか?ルアで参照先のテーブルを削除するには?

など。

a = { "a" } 
b = a 

-- Removing a, by only using b 

bをnilに設定すると参照が削除されるため、参照する表をbを使用して削除するにはどうすればよいですか?

答えて

2

あなたはしていません。

誰かがそのテーブルへの参照を持っている場合、そのテーブルへの参照があります。ルアはあなたに他の人のものを一方的に取り除く力を与えません。数字ではなく

a = {{"a"}} 
b = a 
a[1][1] == "a" --How to access the table. 
b[1] = nil 
a[1][1] == "a" --Runtime failure, due to `nil` access. 

典型的に、このような用途が与えられている名前:

さて、あなたは誰かが間接的にテーブルを使用することによって、これを実行しようとすることができます

a = {name = {"a"}} 
b = a 
a.name[1] == "a" --How to access the table. 
b.name = nil 
a.name[1] == "a" --Runtime failure, due to `nil` access. 

しかし、いずれにせよ、これで誰かがこのことをやめさせることはありません。

a = {name = {"a"}} 
b = a 
local c = a.name --Local storage 
a.name[1] == "a" --How to access the table. 
b.name = nil 
c[1] == "a" --Still works 

ルアには電源が​​ありません。一般には、あなたが他人のデータにアクセスして自分のものと遊ぶことを可能にします。

+0

ありがとうございました、その代替の例は非常に役に立ちました! – Skere

+0

理論的には、**すべてを**手動で検索して参照を見つけて切断することができます。しかし、実際の使用法はありません。 – warspyking

関連する問題