單行與多行註解
Lua 使用 -- 建立單行註解;多行文字可使用長括號語法,常見寫法為 --[[ ... ]]。
Lua 對空白與換行相對寬鬆,程式可自由排版,但良好的縮排仍然很重要。
Lua 是一種動態型別、語法精簡的腳本語言。變數本身沒有固定型別,型別附著在值上;table 是 Lua 最重要也最有代表性的資料結構;函式是一等公民,可儲存在變數與 table 中,也可作為參數傳遞。
以下章節依照學習順序整理 Lua 的常用語法,並搭配簡潔程式碼範例。整體語法與關鍵規則參考官方手冊與 Programming in Lua 的教學脈絡。
Lua 使用 -- 建立單行註解;多行文字可使用長括號語法,常見寫法為 --[[ ... ]]。
Lua 對空白與換行相對寬鬆,程式可自由排版,但良好的縮排仍然很重要。
Lua 是動態型別語言,變數不需要先宣告型別。常見基本型別包括 nil、 boolean、 number、 string、 function、 table 等。
建議初學時盡量使用 local 宣告區域變數,避免不小心建立全域變數。
Lua 常見運算包含算術運算、比較運算、邏輯運算,以及用 .. 進行字串串接。
| 類型 | 語法 | 說明 |
|---|---|---|
| 算術 | + - * / // % ^ | 包含加減乘除、整除、餘數、次方 |
| 比較 | == ~= < > <= >= | Lua 的不等於是 ~= |
| 邏輯 | and or not | 用於條件判斷與布林運算 |
| 字串 | .. | 將兩段文字串接 |
Lua 的條件區塊以 then 開始,最後以 end 結束。
在 Lua 中,只有 false 與 nil 會被視為假;數字 0 仍然是真。
Lua 提供多種迴圈結構,其中數值型 for 與通用型 for 特別常見。
repeat...until 至少會執行一次,再檢查條件; while 則是先檢查條件,成立才執行。
Lua 的函式可以命名、匿名、存入變數、當成參數傳遞,也可以回傳多個值。
多重回傳是 Lua 很實用的特性,常用在回傳結果與狀態、值與錯誤訊息等場景。
table 可以同時扮演陣列、字典、物件、集合與記錄。這也是 Lua 的核心能力之一。
若 key 是合法識別字,可用點記法 user.name; 否則可用索引記法 user["user-name"]。
常見做法是建立一個 table,將函式掛在其中,最後 return 該 table,讓其他檔案用 require 載入。
模組化能讓程式更容易維護,也適合大型專案分工。
Lua 可使用 error() 主動拋出錯誤,再用 pcall() 進行保護呼叫,避免程式直接中止。
這種寫法很適合用在讀檔、模組載入、使用者輸入驗證等場景。
| 主題 | 常見語法 | 說明 |
|---|---|---|
| 區域變數 | local x = 10 | 建議優先使用,避免污染全域 |
| 交換變數 | a, b = b, a | Lua 支援多重指定 |
| 字串長文字 | [[長文字內容]] | 適合多行字串 |
| 數值 for | for i = 1, 10, 2 do ... end | 開始、結束、步進值 |
| 通用 for | for k, v in pairs(t) do ... end | 走訪 table 常用 |
| 匿名函式 | local f = function(x) return x*2 end | 可作為回呼函式 |
| 不等於 | ~= | 不是 != |
| 字串串接 | "Lua" .. "Lang" | 使用兩個句點 |
下面用三個常見情境展示 Lua 的應用方式,讓你不只知道語法,也知道怎麼把語法組合成能工作的程式。
透過函式與 if 判斷成績區間,回傳等第與簡短評語。
這個例子示範了多重回傳值:函式可一次回傳等第與評語,呼叫端再分別接收。
以 table 儲存商品資訊,再用迴圈走訪資料,計算是否需要補貨。
這種結構很常出現在遊戲道具表、商城資料、設定檔解析與簡單後台邏輯中。
把常用功能集中到模組,讓主程式只保留清楚的流程。
模組化是從練習程式邁向專案開發的重要一步,能降低重複程式碼並提升可讀性。
Lua 常被用於遊戲腳本、設定檔、嵌入式系統、工具自動化與資料描述。它的優勢在於語言小巧、可嵌入 C/C++ 程式、table 足夠靈活,以及函式可作為值處理,使腳本擴充很自然。
可以從「做一個小計算機」、「做一個文字選單遊戲」、「讀取設定 table 並輸出結果」這三種練習開始。只要能把變數、條件、迴圈、函式、table 串起來,你就已經具備 Lua 基礎實戰能力。
完成以下 8 題後,按下「計算分數」即可立即看到結果與學習建議。這些題目涵蓋基礎語法、table、函式與錯誤處理。
本頁教學內容的語法規則、核心概念與學習脈絡主要參考 Lua 官方文件與官方教學書籍目錄頁。