聯繫我們
 課程時長 14 時間:

課程簡介

Lua 簡介

  • 一點歷史背景
  • Lua 的目標、特性與非目標
  • Lua 文件與教學資源
  • 安裝 Lua 直譯器
  • 設定及使用 LuaRocks

基本語法與語意

  • 識別符
  • 註解、區塊註解
  • 全域變數與強制嚴格模式
  • 區域變數
  • 獨立程式、程式參數
  • 編譯單元、區塊(chunks)、運算式、分號

資料型別與資料結構

  • 基本型別:nil、boolean、number、string
  • 物件型別:function、userdata、thread、table
  • 參考/物件 vs. 基本值
  • 表格(Table)在 Lua 中的重要性

表格(Table)簡介及其多功能性

  • 表格作為關聯陣列(associative array)
  • 表格作為數值陣列、序列(sequences)

基本控制結構

  • if then elseif else end
  • while 迴圈
  • repeat 迴圈
  • 簡單 for 迴圈

錯誤處理

  • 回傳值 vs. 例外(exceptions)
  • 將回傳值轉換為例外
  • 將例外轉換為回傳值
  • 錯誤層級

範例程式

  • 多項式求值
  • 廣度優先搜索(BFS)
  • 額外練習

函式進階說明

  • 具名參數(Named arguments)
  • 物件導向呼叫
  • 閉包(Closures)
  • 柯里化(Currying)
  • 尾部呼叫(Tail calls)
  • 多重賦值與回傳
  • 可變參數(Varargs)

迭代器與協程(Co-routines)

  • 通用 for 迴圈
  • 無狀態 vs. 有狀態迭代器
  • 迭代器與協程的差異

元表格(Metatables)與元方法(Metamethods)

  • 集合(set)的範例
  • __tostring 元方法
  • 算術元方法
  • __index, __newindex 元方法
  • __len 元方法

模組與套件

  • 使用模組
  • 建立模組
  • 將模組組織為套件

物件導向程式設計

  • Lua 中物件導向的構建區塊
  • 範例

進階語言特性討論

  • 弱表格(Weak tables)
  • 最終化器(Finalizers)
  • 編譯、eval、載入

最低要求

熟悉至少另一種程式語言,並具備程式設計經驗。如果您熟悉其他腳本語言,將有助於更容易地理解 Lua。

即將到來的課程

課程分類