Lua 不是一個主流的語言,不過還蠻常見的,主要用於遊戲引擎和其他軟體的腳本語言。本文的目的在說明 Lua 的特性及這些特性對 Lua 社群的影響。 繼續閱讀
有鑑於 Lua 學習資源的相對缺乏,故筆者撰寫此系列教學文件。本系列文章專注於 Lua 程式設計本身,而非 Solar2D 或 Cocos2d-x 或其他的 Lua 應用程式設計。
由於 Lua 是內嵌語言,Lua 程式設計會分為 Lua 程式語言和 Lua C API 兩方面;前者是學習 Lua 語法來寫程式,後者則是使用 Lua C API 將 Lua 直譯器嵌在宿主軟體 (host software)。我們目前以 Lua 語法為主,日後有機會再加入 Lua C API 的介紹。
本系列文章以網頁的方式來呈現,如果讀者比較喜歡讀實體書籍,可參考 Programming in Lua。
除了 Lua 本身,我們另外提供 Solar2D 的教學。Solar2D (原 Corona SDK) 是一套以 Lua 為腳本語言的遊戲引擎 (game engine),歡迎有需要的讀者前往觀看。
由於 Lua 是內嵌語言,如果讀者使用 Corona SDK 或其他的遊戲引擎的話,這些遊戲引擎就會內嵌 Lua 直譯器,不需另外安裝。本文以讀者要學習 繼續閱讀
在本文中,我們介紹幾個 Lua 程式的基本概念,包括變數、資料型別等。 繼續閱讀
在程式設計中,運算子 (operator) 多使用符號來撰寫,較少使用文字。由於運算子通常無法再化簡,我們將運算子視為該程式語言的基本指令,使用運算子用組合出更複雜的功能。本文介紹 Lua 可用的運算子。 繼續閱讀
在預設情形下,程式碼由上往下依序執行。控制結構 (control structure) 用於改變程式進行的順序。本文介紹 Lua 可用的控制結構。 繼續閱讀
表 (table) 是 Lua 唯一的資料結構,在 Lua 內部的實作上,表帶有雜湊表 (hash table) 和陣列 (array) 兩種資料結構,Lua 繼續閱讀
函式 (function) 將某段程式碼區塊包裝起來,並給予命名,該程式碼區塊就成為一個有意義的實體。函式可以重覆再利用,也是物件導向和模組的基礎。本文介紹函式本身,其他概念留至後文介紹。 繼續閱讀
函數式程式 (functional programming) 的前提在於函式是第一階物件 (first-class objects),簡單地說,函式也可以是值 繼續閱讀
Lua 的物件系統 (object system) 是以原型 (prototype) 為基礎,和一般 Java 或 Python 等以類別 (class) 為基礎的物件系統略為不同。 繼續閱讀
由於 Lua 是動態型別語言,不需要像 Java 等語言,利用子型別 (subtyping) 來達到多型的效果,使用內建的語法機制即可達到相同的效果。 繼續閱讀