I’ve recently been doing quite a bit of dev forum reading on one specific topic. Metatables. I know they are used in OOP, and I know that they are meant to make a table more powerful by giving it metamethods.
However, I’ve never found an actual need for metatables. Why use them?
I’ve read that you can use __index to return a default value if a table index returns nil, but couldn’t you just do an if statement and assign a variable the default value and return that variable? I’m not seeing a real need for metamethods here. So why use them?
Another question I have is when to use them. What real-life scenarios would someone need to use metatables? Now I’m asking for an actual real-life situation, and not a pizza example I’ve seen multiple times.
So my question is: Why, when, and where would someone need to use metatables?
No, you never really need them, but that can be said about a lot of features. The only time you might want to use them is when you want to do some tricky behavior or have syntax sugar for functionality in your code.