Lua - 運算子

你好,初學編程者!今天,我們將踏上一段令人興奮的旅程,探索Lua運算子的世界。別擔心如果你從未編過程序 —— 我將成為你的友好導遊,我們將一步步地探索這個主題。在本課結束時,你將能像專家一樣操縱數據!

Lua - Operators

算術運算子

讓我們從熟悉的數學開始!Lua提供了與數學課上使用的一模一樣的算術運算子。

基本算術運算子

這裡是一個Lua基本算術運算子的表格:

運算子 描述 示例
+ 加法 5 + 3 = 8
- 減法 10 - 4 = 6
* 乘法 3 * 4 = 12
/ 除法 20 / 5 = 4
% 餘數(剩餘) 17 % 5 = 2
^ 乘方 2 ^ 3 = 8

讓我們看看這些運算子的實際應用:

print(5 + 3)  -- 輸出:8
print(10 - 4) -- 輸出:6
print(3 * 4)  -- 輸出:12
print(20 / 5) -- 輸出:4
print(17 % 5) -- 輸出:2
print(2 ^ 3)  -- 輸出:8

每一行都執行不同的算術操作並打印結果。--符號表示註釋,Lua會忽略它,但它幫助我們理解代碼。

餘數運算子

對於一些初學者來說,餘數運算子(%)可能會有些陌生。它給我們提供除法之後的剩餘。想想看,"如果我們將這些數字除以對方,會剩下什麼?" 例如,當我們將17除以5時,我們得到3和2的餘數。這就是為什麼17 % 5等於2。

関係運算子

現在,讓我們來看看關係運算子。這些運算子用於比較值,並總是返回truefalse

運算子 描述 示例
== 等於 5 == 5 是 true
~= 不等於 5 ~= 4 是 true
> 大於 7 > 3 是 true
< 小於 2 < 8 是 true
>= 大於或等於 5 >= 5 是 true
<= 小於或等於 4 <= 4 是 true

讓我們試試這些運算子:

print(5 == 5)  -- 輸出:true
print(5 ~= 4)  -- 輸出:true
print(7 > 3)   -- 輸出:true
print(2 < 8)   -- 輸出:true
print(5 >= 5)  -- 輸出:true
print(4 <= 4)  -- 輸出:true

記住,在Lua中,我們使用~=表示"不等於",這與一些其他編程語言中使用的!=不同。

邏輯運算子

邏輯運算子用於組合條件語句。它們就像日常語言中的"和"、"或"和"非"。

運算子 描述
and 兩個操作數都為true時為true
or 至少一個操作數為true時為true
not 反轉邏輯狀態

這是我們如何使用它們:

print(true and false)  -- 輸出:false
print(true or false)   -- 輸出:true
print(not true)        -- 輸出:false

-- 我們也可以用變量
local x = 5
local y = 10
print(x < 10 and y > 5)  -- 輸出:true
print(x > 10 or y < 5)   -- 輸出:false

在最後一個例子中,x < 10 and y > 5為true,因為兩個條件都為true:x小於10,y大於5。

其他運算子

Lua還有一些不適合歸入前述類別的其他運算子:

運算子 描述 示例
.. 串接(將字符串連接起來) "Hello " .. "World" = "Hello World"
# 長度運算子 #"Hello" = 5

讓我們看看這些運算子的實際應用:

print("Hello " .. "World")  -- 輸出:Hello World
print(#"Hello")             -- 輸出:5

串接運算子(..)在組合字符串時非常有用。長度運算子(#)告訴你字符串中有多少個字符。

Lua中的運算子優先級

與數學一樣,Lua也有操作優先級。以下是從最高到最低的優先級:

  1. ^
  2. not # - (一元)
    • /
  3. ..
  4. < > <= >= ~= ==
  5. and
  6. or

這意味著在像2 + 3 * 4這樣的表達式中,Lua會先進行乘法(3 * 4 = 12),然後進行加法(2 + 12 = 14)。

如果你想要改變順序,你可以使用括號。例如:

print(2 + 3 * 4)     -- 輸出:14
print((2 + 3) * 4)   -- 輸出:20

在第二行中,括號告訴Lua先進行加法,然後將結果乘以4。

這就是你對Lua運算子的初步了解!記住,熟能生巧。嘗試以不同的方式組合這些運算子,看看會發生什麼。不要害怕犯錯誤 —— 我們就是這樣學習的!

在我多年的教學經驗中,我發現最好的程序員是那些不怕嘗試的人。所以,繼續探索這些運算子,看看你能創造出什麼。誰知道呢?你可能就是下一個偉大的Lua程序員!

Credits: Image by storyset