Lua Basics

Assignment and Expressions

In Lua, like in most programming languages, you can assign a value to a variable. In Lua, the = operator indicates an assignment:

myvar = 98.6

Here, the value 98.6 is assigned to the variable myvar.

In Lua, any value can be assigned to any variable, as variables are not restricted to containing a specific type of value. For example, all of the following are legal:

myvar = 98.6
myvar = nil
myvar = "Dr. John Smith"
myvar = {98.6, "Dr. John Smith", "Radiology"}
myvar = true

You can also assign to multiple variables at once:

myvar = myvar2 = 98.6

Here, both myvar and myvar2 are assigned the value 98.6. You can also assign multiple values to multiple variables:

myvar, myvar2 = 98.6, "Dr. John Smith"

This assigns 98.6 to myvar and “Dr. John Smith” to myvar2. You can use this to swap the values of two variables. For example, the following statement assigns the value of myvar to myvar2 and the (old) value of myvar2 to myvar:

myvar, myvar2 = myvar2, myvar

In Lua, you can also use expressions to perform arithmetic and compare one value to another. The following tables list the operations that can be performed in Lua expressions.

Arithmetic operations

Operation Description Example
+ Addition myvar2 = myvar + 1
Subtraction myvar2 = myvar – 1
Negation myvar2 = -myvar
* Multiplication myvar2 = myvar * 10
/ Division myvar2 = myvar / 10
% Modulo (remainder from division) myvar2 = 47 % 10(this assigns 7 to myvar2)
^ Exponentiation myvar2 = 2^5(this is 2 to the power 5, or 32)

Comparison operations

Operation Description Example
== Equal to myvar1 == myvar2(this is true if myvar1 is equal to myvar2)
~= Not equal to myvar1 ~= myvar2(this is false if myvar1 is equal to myvar2)
< Less than myvar1 < myvar2(this is true if myvar1 is less than myvar2)
> Greater than myvar1 > myvar2(this is true if myvar1 is greater than myvar2)
<= Less than or equal to myvar1 <= myvar2(this is true if myvar1 is less than or equal to myvar2)
>= Greater than or equal to myvar1 >= myvar2(this is true if myvar1 is greater than or equal to myvar2)

Logical operations

Operation Description Example
not Logical not !myvar1(This is true if myvar1 contains nil or false, and is false otherwise)
and Logical and myvar1 and myvar2(This is true if both myvar1 and myvar2 are true)
or Logical or myvar1 or myvar2(This is true if either of myvar1 or myvar2 is true)

For more about assignment see: assignments in the online programming book, the Lua Tutorial wiki, or search for “assignment” in the online reference manual

For more about expressions see: expressions in the online programming book, the online reference manual or the Lua Tutorial wiki.

Tagged: