2016-06-18 9 views
2

2つの変数がLuaの同じテーブルを指しているかどうかを確認する方法はありますか?2つのテーブル/オブジェクトがLuaで同じアイデンティティであるかどうかを確認する方法

私はいくつかのオペレータFOO(A、B)ここたい:正確にコメントで述べたよう

myTable = {1, 2} 
myOtherTable = {1, 2} 
foo(myTable, myTable) -- true 
foo(myTable, myOtherTable) -- false 
+0

'=='等価演算子を試しましたか? (メタメソッドが含まれている場合は、 'rawequal()'関数が必要かもしれません)。 – siffiejoe

+0

'=='を使うだけです。それはまさにあなたが求めるものです。 2つのテーブルが同じ要素を含んでいるかどうかに基づいて等しいかどうかを調べることは、実行しません。それらのメタテーブルの '__eq'メソッドを上書きする必要がありますが、あなたが求めたことをするためにそれを行う必要はありません。 – user6245072

答えて

2

を。等号記号は、同じテーブルで作業しているかどうかをチェックします。

function foo(a,b) 
    return a == b 
end 

myTable = {1, 2} 
myOtherTable = {1, 2} 
print(foo(myTable, myTable)) -- true 
print(foo(myTable, myOtherTable)) -- false 

-- live demo: http://ideone.com/7glzoj 
関連する問題