眾所周知,C,C++,python等語言都有運算符,那麼Lua也不例外,因為它是C寫的嘛!
Lua分為主要三類運算符,分別是算術運算符,關係運算符,邏輯運算符,還有特殊運算符。
1、算術運算符有: + (加) -(減) *(乘) /(除) %(取模) ^(求冪) -(符號)
來看一個例子:test6.lua
num1 = 4 ;
num2 = 2 ;
print(num1+num2);
print(num1-num2);
print(num1*num2);
print(num1/num2);
print(num1%num2);
print(num1^num2);
print(-num1);
解釋運行:lua test6.lua
結果:
6
2
8
2.0
0
16.0
-4
2、關係運算符有: ==(等於) ~=(不等於) >(大於) <(小於) >=(大於等於) <=(小於等於)
當比較結果成立返回true,否則返回false
來看一個例子: test6.lua
num = 1 ;
num1 = 1;
num2 = 2;
num3 = 3;
num4 = 4;
num5 = 5;
num6 = 6;
ret = num1 == num2 ;
print(ret);
ret = num1 ~= num2 ;
print(ret);
ret = num3 > num2 ;
print(ret);
ret = num4 < num3 ;
print(ret);
ret = num5 >= num6 ;
print(ret);
ret = num1 <= num ;
print(ret);
解釋運行:lua test6.lua
結果:
false
true
true
false
false
true
3、邏輯運算符有: and(邏輯與) or(邏輯或) not(邏輯非)
假設有A和B,如果A and B, 為真返回A,為假返回B
假設有A和B ,如果A or B , 為真返回A ,為假返回B
假設有A和B ,如果 not A , 為真返回true ,為假返回false
來看一個例子:test6.lua
num1 = 100 ;
num2 = 200 ;
num3 = 0 ;
ret = num1 and num3 ;
print(ret);
ret = num1 or num3 ;
print(ret);
ret = not num1 ;
print(ret);
ret = not(num1 and num2);
print(ret);
解釋運行:lua test6.lua
結果:
0
100
false
false
4、特殊運算符
.. 表示連接兩個字符串 #表示返回字符串或者表的長度(注意,這裏的長度不包括'\0')
案例: test6.lua
--定義兩個字符串
str1 = "Hello";
str2 = "World";
--連接兩個字符串
ret = str1..str2;
print(ret);
--獲取連接後的字符串的長度
str_length = #ret ;
print(str_length);
解釋運行: lua test6.lua
結果:
HelloWorld
10
當然,lua的運算符也是有優先級的,優先級從高到底的順序為:
^ not -(負號) * / + - .. < > <= >= ~= == and or