Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Lua, does indexing a table with a table as the key call the __eq metamethod?

Tags:

metadata

lua

I am wondering if table[key] where key is a table with a metatable will call the __eq metamethod. For instance, if the table has a key "a" and the __eq metamethod returns true if "a" is being compared to the metatable, will indexing the table with the table return the value for "a"?

like image 200
Hal Avatar asked Apr 19 '14 17:04

Hal


1 Answers

No, indexing uses raw equality: http://www.lua.org/manual/5.2/manual.html#2.4

You should consider explicitly converting your objects to their string representation before indexing instead of relying on implicit metamethods.

like image 199
hugomg Avatar answered Sep 23 '22 13:09

hugomg