Comparison
Comparison operators are used to compare two variables, typically numbers.
Operators
The Lua core is capable of the following comparison operators:
Less than: <
Compares the left variable to the right variable. Returns true
if the left is less than the right, otherwise returns false
.
Greater than: >
Compares the left variable to the right variable. Returns true
if the left is greater than the right, otherwise returns false
Less than or equals: <=
Compares the left variable to the right variable. Returns false
if the left is greater than the right, otherwise returns true
. This is the logical opposite of the greater than operator.
Greater than or equals: >=
Compares the left variable to the right variable. Returns false
if the left is less than the right, otherwise returns true
. This is the logical opposite of the less than operator.
Equals: ==
Compares the left variable to the right variable. Returns true
if the two variables are equal, or false
if they are not.
Not Equals: ~=
Compares the left variable to the right variable. Returns false
if the two variables are equal (a few exceptions, see special cases), or true
if they are not. This is the logical opposite of the equals operator.
Special cases
- NaN (Not a Number) is the only Lua value that is not equal to itself.
- Table equality is by reference, not by value. This means that
{3} == {3}
isfalse
because the two tables have different references/are at different locations in memory, even though they contain the same values. However,local tbl = {3}; print(tbl == tbl)
istrue
as the reference is the same and they are considered the same table. - Comparison can be overriden using metamethods.