運算子是一個特殊的符號,用於告訴解譯器執行特定的數學或邏輯運算。Lua提供了以下幾種運算子類型:
算術運算子
關係運算子
邏輯運算子
其他運算子 算術運算子 執行個體
a = 21b = 10c = a + bprint("Line 1 - c 的值為 ", c )c = a - bprint("Line 2 - c 的值為 ", c )c = a * bprint("Line 3 - c 的值為 ", c )c = a / bprint("Line 4 - c 的值為 ", c )c = a % bprint("Line 5 - c 的值為 ", c )c = a^2print("Line 6 - c 的值為 ", c )c = -aprint("Line 7 - c 的值為 ", c )
以上程式執行結果為:
Line 1 - c 的值為 31Line 2 - c 的值為 11Line 3 - c 的值為 210Line 4 - c 的值為 2.1Line 5 - c 的值為 1Line 6 - c 的值為 441Line 7 - c 的值為 -21
關係運算子
下表列出了 Lua 語言中的常用關係運算子,設定 A 的值為10,B 的值為 20:
邏輯運算子
下表列出了 Lua 語言中的常用邏輯運算子,設定 A 的值為 true,B 的值為 false:
其他運算子
下表列出了 Lua 語言中的串連運算子與計算表或字串長度的運算子:
a = "Hello "b = "World"print("連接字串 a 和 b ", a..b )print("b 字串長度 ",#b )print("字串 Test 長度 ",#"Test" )print("菜鳥教程網址長度 ",#"www.runoob.com" )
以上程式執行結果為:
連接字串 a 和 b Hello Worldb 字串長度 5字串 Test 長度 4菜鳥教程網址長度 14
運算子優先順序
從高到低的順序:
^not - (unary)* /+ -..< > <= >= ~= ==andor
除了^和..外所有的二元運算子都是左串連的。
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)