開源技術教學文件網 使用運算子 (Operator)

最後修改日期為 JAN 5, 2018

前言

在程式設計中,運算子 (operator) 多使用符號來撰寫,較少使用文字。由於運算子通常無法再化簡,我們將運算子視為該程式語言的基本指令,使用運算子用組合出更複雜的功能。本文介紹 Lua 可用的運算子。

代數運算子 (Arithmetic operators)

Lua 支援以下代數運算子:

  • +:相加
  • -:相減、負號
  • *:相乘
  • /:相除
  • %:取餘數
  • ^:取指數

其中取餘數比較特別一點,因 Lua 的數字是浮點數,而取餘數可對浮點數取值,見下例:

print(1 % 0.7)

但取出來不會剛好等於 0.3,而有一點點誤差,因此,不建議對非整數取餘數。

關係運算子 (Relational operators)

Lua 支援以下關係運算子:

  • ==:相等
  • ~=:不相等
  • >:大於
  • >=:大於或等於
  • <:小於
  • <=:小於或等於

見以下實例:

assert(3 + 2 == 5)
assert(3 + 2 ~= 4)
assert(3 + 2 > 4)
assert(3 + 2 >= 4)
assert(1 + 2 < 4)
assert(1 + 2 <= 4)

邏輯運算子 (Logical operators)

Lua 支援以下邏輯運算子:

  • and:且
  • or:或
  • not:相反

見以下實例:

assert((true and true) == true)
assert((true and false) == false)
assert((false and true) == false)
assert((false and false) == false)

assert((true or true) == true)
assert((true or false) == true)
assert((false or true) == true)
assert((false or false) == false)

assert((not true) == false)
assert((not false) == true)

字串相接運算子

Lua 使用 .. 進行字串相接。見下例:

assert(("Hello " .. "World") == "Hello World")

和表相關的運算子

我們留到介紹表的章節一併介紹。

運算子優先順序 (Operator precedence)

在 Lua 中,運算子優先順序如下:

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

雖然 Lua 的運算子優先順序比其他語言簡單得多,但不要強記該順序;在程式中儘量撰寫簡單的敘述,就不用強記這些規則。

分享本文
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Yahoo
追蹤本站
Facebook Facebook Twitter