Register forum user name Search FAQ

relational operators

Lua provides the following relational operators:

    <   >   <=  >=  ==  ~=


All these operators always result in true or false.

The operator == tests for equality; the operator ~= is the negation of equality.

If the values are different types they are considered different values. For example, "5" (string type) is not the same as 5 (number type).

Tables, userdata and functions are compared by reference. That is they are considered equal only if they are the same underlying object. Thus two tables, which happen to contain the same things, but which were created separately, are considered different.

Note that the equality test is "==", not just "=". Thus this is incorrect:

if a = 5 then  -- wrong! use a == 5 instead


Also note that the inequality test is "~=", not "!=" as used by the C language.


See Also ...

Lua keywords/topics

assignment
break
comments
data types
do
for (generic)
for (numeric)
function
identifiers
if / then / else
keywords
local
logical operators
precedence
repeat
return
string literals
tables
while

Topics

Lua base functions
Lua bc (big number) functions
Lua bit manipulation functions
Lua coroutine functions
Lua debug functions
Lua io functions
Lua LPEG library
Lua math functions
Lua os functions
Lua package functions
Lua PCRE regular expression functions
Lua script extensions
Lua SQLite (database) interface
Lua string functions
Lua syntax
Lua table functions
Lua utilities
Scripting
Scripting callbacks - plugins

(Help topic: lua=relational operators)

Documentation contents page


Search ...

Enter a search string to find matching documentation.

Search for:   

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.