Table

In Lua, the table variable is a general-purpose aggregate datatype that can store multiple variables (including additional tables). To create a table, use a matching pair of curly brackets ({}).

Metatables
Lua has a powerful extension mechanism which allows you to overload certain operations on Lua objects. Each overloaded object has a metatable of function metamethods associated with it; these are called when appropriate, similar to the concept of operator overloading from many other languages.