Lua operator


Release date:2023-09-29 Update date:2023-10-13 Editor:admin View counts:316

Label:

Lua operator

An operator is a special symbol that tells the interpreter to perform specific mathematical or logical operations. Lua provides the following types of operators:

  • Arithmetic operator

  • Relational operator

  • Logical operator

  • Other operators

Arithmetic operator

The following table lists the common arithmetic operators in the Lua language, setting A to 10 and B to 20:

Operator

Description

Example

+

Addition

A + B output result 30

-

Subtraction

A-B output result-10

*

Multiplication

A * B output result 200

/

Division

B / A output result 2

%

Take the remainder

B An output result 0

^

Multiplying power

A^2 output result 100

-

Minus sign

-A output result-10

//

Integer division operator (> = lua5.3)

5Compact 2 output result 2

Example

We can understand the application of arithmetic operators more thoroughly through the following examples:

Example

a = 21
b = 10
c = a + b
print("The value of Line 1- c is ", c )
c = a - b
print("The value of Line 2- c is ", c )
c = a * b
print("The value of Line 3- c is ", c )
c = a / b
print("The value of Line 4- c is ", c )
c = a % b
print("The value of Line 5- c is ", c )
c = a^2
print("The value of Line 6- c is ", c )
c = -a
print("The value of Line 7-c is ", c )

The execution results of the above procedures are as follows:

The value of Line 1- c is 31
The value of Line 2- c is 11
The value of Line 3- c is 210
The value of Line 4- c is 2.1
The value of Line 5- c is 1
The value of Line 6- c is 441
The value of Line 7- c is -21

In lua, / is used as a division operation, the result contains the decimal part, // is used as an integral division operation, and the result does notinclude the decimal part:

Example

a = 5
b = 2
print("The value of division operation - a/b is ", a / b )
print("The value of integer division - a/b is ", a // b )

The execution results of the above procedures are as follows:

Division operation - the value of a/b is 2.5
The value of integer division - a/b is 2

Relational operator

The following table lists the common relational operators in the Lua language, setting the value of A to 10 and the value of B to 20:

Operator

Description

Example

==

Equals, checks whether two values are equal, returns true, otherwise returnsfalse

(A == B) is false.

~=

Not equal. Check whether two values are equal. Return true if they are not equal, otherwise return false.

(A ~= B) is true.

>

Greater than, if the value on the left is greater than the value on the right, return true, otherwise return false

(A > B) is false.

<

Less than, if the value on the left is greater than the value on the right, return false, otherwise return true

(A < B) is true.

>=

Greater than or equal to, if the value on the left is greater than or equal to the value on the right, return true, otherwise return false

(A >= B) returns false.

<=

Less than or equal to, if the value on the left is less than or equal to thevalue on the right, return true, otherwise return false

(A <= B) returns true.

Example

We can understand the application of relational operators more thoroughly through the following examples:

Example

a = 21
b = 10
if( a == b )
then
   print("Line 1 - a = b" )
else
   print("Line 1 - a ≠ b" )
end
if( a ~= b )
then
   print("Line 2 - a ≠ b" )
else
   print("Line 2 - a = b" )
end
if ( a < b )
then
   print("Line 3 - a < b" )
else
   print("Line 3 - a ≥ b" )
end
if ( a > b )
then
   print("Line 4 - a > b" )
else
   print("Line 5 - a ≤ b" )
end
-- Modify the values of a and b
a = 5
b = 20
if ( a <= b )
then
   print("Line 5 - a ≤  b" )
end
if ( b >= a )
then
   print("Line 6 - b ≥ a" )
end

The execution results of the above procedures are as follows:

Line 1 - a ≠ b
Line 2 - a ≠ b
Line 3 - a ≥ b
Line 4 - a > b
Line 5 - a ≤  b
Line 6 - b ≥ a

Logical operator

The following table lists the common logical operators in the Lua language, setting the value of A to true , the value of B is false :

Operator

Description

Example

and

Logic and operators. If A is false, return A, otherwise return B.

(A and B) is false.

or

Logic or operator. If A is true, return A, otherwise return B.

(A or B) is true.

not

Logical non-operator. Contrary to the logic operation result, if the condition is true, the logic is not false.

not (A and B) is true.

Example

We can understand the application of logical operators more thoroughly through the following examples:

Example

a = true
b = true
if ( a and b )
then
   print("a and b - Condition is true" )
end
if ( a or b )
then
   print("a or b - Condition is true" )
end
print("---------Divider---------" )
-- Modify the values of a and b
a = false
b = true
if ( a and b )
then
   print("a and b - Condition is true" )
else
   print("a and b - Condition is false" )
end
if ( not( a and b) )
then
   print("not( a and b) - Condition is true" )
else
   print("not( a and b) - Condition is false" )
end

The execution results of the above procedures are as follows:

a and b - Condition is true
a or b - Condition is true
---------Divider---------
a and b - Condition is false
not( a and b) - Condition is true

Other operators

The following table lists the concatenation operators in the Lua language and operators that calculate the length of a table or string:

Operator

Description

Example

Concatenate two strings

a..b, where an is “Hello”, b is “World”, and the output is “Hello World”.

#

Unary operator that returns the length of a string or table.

#”Hello” returns 5

Example

We can better understand the application of concatenation operators and operators that calculate the length of tables or strings through the following examples:

Example

a = "Hello "
b = "World"
print("Connection strings a and b ", a..b )
print("B String length ",#b )
print("String Test Length ",#"Test" )
print("Newbie tutorial website length ",#"www.runoob.com" )

The execution results of the above procedures are as follows:

Connection strings a and b    Hello World
B String length     5
String Test Length     4
Newbie tutorial website length     14

Operator precedence

The order from high to low:

^
not    - (unary)
*      /       %
+      -
..
<      >      <=     >=     ~=     ==
and
or

Except ^ and .. all binary operators outside are left concatenated.

a+i < b/2+1          <-->       (a+i) < ((b/2)+1)
5+x^2*8              <-->       5+((x^2)*8)
a < y and y <= z     <-->       (a < y) and (y <= z)
-x^2                 <-->       -(x^2)
x^y^z                <-->       x^(y^z)

Example

We can get a more thorough understanding of the precedence of Lua language operators through the following examples:

Example

a = 20
b = 10
c = 15
d = 5
e = (a + b) * c / d;-- ( 30 * 15 ) / 5
print("(a + b) * c / d operation value is  :",e )
e = ((a + b) * c) / d; -- (30 * 15 ) / 5
print("((a + b) * c) / d operation value is :",e )
e = (a + b) * (c / d);-- (30) * (15/5)
print("(a + b) * (c / d) operation value is :",e )
e = a + (b * c) / d;  -- 20 + (150/5)
print("a + (b * c) / d operation value is   :",e )

The execution results of the above procedures are as follows:

(a + b) * c / d operation value is  :    90.0
((a + b) * c) / d operation value is :    90.0
(a + b) * (c / d) operation value is :    90.0
a + (b * c) / d operation value is   :    50.0

Powered by TorCMS (https://github.com/bukun/TorCMS).