2016-06-18 16 views
2

Gibt es eine Möglichkeit zu überprüfen, ob zwei Variablen auf die gleiche Tabelle in Lua zeigen?wie überprüft man, ob zwei Tabellen/Objekte in Lua die gleiche Identität haben

würde ich einige Betreiber foo wie (A, B), wobei:

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

Haben Sie den '==' Gleichheitsoperator versucht ?! (Wenn Metamethods beteiligt sind, benötigen Sie möglicherweise die 'rawequal()' -Funktion.) – siffiejoe

+0

Sie verwenden nur '=='. Es macht genau das, wonach du gefragt hast. Was es NICHT tut, ist zu prüfen, ob zwei Tabellen gleich sind, basierend darauf, ob sie dieselben Elemente enthalten oder nicht. Sie müßten die Metatabellen-Methode überschreiben, aber Sie müssen das nicht tun, um das zu tun, was Sie gefragt haben. – user6245072

Antwort

2

Genau wie in den Kommentaren erwähnt. Gleichheitszeichen prüft, ob Sie mit der gleichen Tabelle arbeiten oder nicht:

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