Skip to content

Metamethods

Rohansi edited this page Oct 19, 2014 · 16 revisions
Name Operation Called when...
__get x.y, x[y] attempting to get a value that does not exist in the object
__set x.y = z, x[y] = z attempting to set a value that does not exist in the object
__call x(...y) attempting to call the object
__eq x == y checking if the object is equal to another value
__gt x > y checking if the object is greater than another value, other operations are combinations of __eq and __gt.
__in x in y
__add x + y
__sub x - y
__mul x * y
__div x / y
__mod x % y
__pow x ** y
__neg -x
__and x + y
__or x - y
__xor x * y
__lshift x / y
__rshift x % y
__not ~x
__number n/a implicitly converting the object to a number
__bool n/a implciitly converting the object to a bool
__string n/a implicitly or explicitly converting the object to a string
__serialize n/a the object is being serialized, does not need to return a string