2485 shaares
83 private links
83 private links
It's a table that sets up another table's behavior. Say you have a table fnark where it's paramount that "YO HEADS UP" is displayed every it gets a new entry. The way to do that would he to create a new table (let's call it behavior) and set its newindex method accordingly. And you also want fnark to say "YEAH MAN ALREADY THERE" when some existing entry is accessed: you set that up in behavior's index method. When you're done describing behavior, you tell Lua that behavior is what defines how fnark should behave: setmetatable(fnark, behavior). And now, whenever you add some new entry or reference an existing entry in fnark, you get the messages from above. That's metatables in a nutshell.