Lua 常見問題集

以下是關於 Lua 的一些常見問題解答。
要了解 Lua 是什麼,請參閱此 摘要 或了解如何 開始 使用 Lua。
對於程式設計問題,請參閱社群維護的 LuaFaq,以及更長的 uFAQ

1 – 發行

請參閱 下載開始 頁面,了解如何取得 Lua 的原始碼和二進位檔。

1.1 – 我需要什麼來建置 Lua?

Lua 是使用純 ANSI C 實作的,且可在所有已知的平台上未經修改地編譯。您只需要一個 ANSI C 編譯器(gccclang 是熱門的編譯器)即可建置 Lua。Lua 也可乾淨地編譯為 C++。

如果您在 Unix 系統(例如 Linux 或 macOS)中建置 Lua,那麼您可能已經具備所有需要,只需輸入 make 即可。(您只需要選擇一個合適的平台。)否則,請參閱 下一個問題。無論如何,請參閱發行版隨附的 README 以取得完整說明。第 1 章 的書 開始 Lua 程式設計 包含下載、建置和安裝 Lua 的詳細說明。以下是常見平台的簡單說明

curl -L -R -O https://lua.dev.org.tw/ftp/lua-5.4.6.tar.gz
tar zxf lua-5.4.6.tar.gz
cd lua-5.4.6
make all test
如果您沒有 curl,請嘗試 wget。

如果您沒有時間或意願自行編譯 Lua,請從 LuaBinaries 取得二進位檔。如果您只想試用 Lua,請嘗試 線上展示

1.2 – 我如何在 Windows 和其他系統中建置 Lua?

這取決於您的編譯器。這些平台中的大多數編譯器要求您建立「專案」檔案。您需要為建置函式庫、直譯器和編譯器建立專案(或您的編譯器使用的任何專案)。所有來源都位於 src 目錄中。哪些模組應該放入哪些專案的確切清單在 README 中提供。另請參閱 wiki 中的 BuildingLua第 1 章 書籍 Beginning Lua Programming 包含下載、建置和安裝 Lua 的詳細說明。

如果您沒有時間或意願自行編譯 Lua,請從 LuaBinaries 取得二進位檔。

1.3 – 下一個版本什麼時候到期?

Lua 正在持續開發中,但新版本 並不頻繁

Lua 5.4.6 於 2023 年 5 月 14 日發布。

1.4 – 下一個版本會帶來哪些變更?

Lua 5.4 最近發布。對於下一個版本中的預覽,請在可用時嘗試 工作版本

如果您擔心不相容性,您不應該擔心,因為我們盡一切努力避免引入任何不相容性。當不相容性不可避免時,通常會在不修改的情況下支援先前的程式碼,可能是透過使用合適的編譯旗標來建置 Lua。在任何情況下,參考手冊 都包含 不相容性清單

1.5 – Lua 是免費軟體嗎?

是的,Lua 可免費用於任何目的,包括商業用途,絕對免費,而且使用它不需要任何文件。請在 授權頁面 中閱讀詳細資訊。

1.6 – Lua 與 GPL 軟體相容嗎?

是的。Lua 是根據非常自由且知名的 MIT 授權條款所發布,該授權條款 與 GPL 相容,並獲得 開放原始碼促進會 的核准。請在 授權頁面 中閱讀詳細資訊。

1.7 – 我該如何稱呼衍生自 Lua 的軟體?

Lua 的目的是用於其他人的軟體,包括您的軟體。在大部分情況下,Lua 只會透過新的函式進行延伸,以將 Lua 調整為您的特定網域。這正是 Lua 的設計目的。當您要發布軟體時,可能會出現兩個問題:「我是否仍可以在我的軟體內部呼叫 Lua 語言?」以及「我是否可以將其稱為其他名稱?」

答案如下:如果語言的語法和語意(也就是剖析器和虛擬機器)保持不變,則該語言仍為 Lua。如果您只新增新的函式庫,甚至用您自己的函式庫取代標準 Lua 函式庫,則語言仍保持不變,而且您不需要(也可能不應該)給它一個完全不同的名稱。

如果您已變更語言的語法或語意,則它可能是一個次要延伸,而且您可能會受益於將您的語言稱為 Lua 變體,以便您可以將使用者轉介至現有的 Lua 文件和社群,並附帶與您對語言的延伸相關的注意事項。

通常,人們會使用包含 Lua 的名稱(例如 CGILua、LuaMan、LuaOrb 等),以便清楚地表示它使用 Lua,但它並非官方的 Lua 發行版。換句話說,您的軟體使用 Lua(或更具體地說,您軟體內部的語言 Lua)應非常清楚,但您的軟體並非 Lua 也應非常清楚。

無論如何,請根據 授權,給予我們 Lua 的信用。

如果這個說明仍不清楚,請 與我們聯絡

1.8 – 有公開的版本控制儲存庫嗎?

GitHub 上有一個 Lua 開發程式碼的 公開鏡像,這是 Lua 團隊所看到的。它包含所有提交的完整歷程記錄,但會不定期鏡像。請勿傳送拉取要求。請將 錯誤報告 和建議傳送至 郵件清單。Lua 是開放原始碼軟體,但它並非公開開發。請閱讀 這個說明

如果您想預覽下一個版本中會出現的內容,您必須等到 工作版本 可用。

1.9 – 你們接受補丁嗎?

我們鼓勵針對問題和增強功能進行基於測試程式碼解決方案的討論,但我們從不逐字納入第三方程式碼。我們總是會試著了解問題和建議的解決方案,然後,如果我們選擇處理問題,我們會提供我們自己的程式碼。Lua 中的所有程式碼都是我們編寫的。請參閱 前一個問題

2 – 資訊

Lua 的完整資訊可以在其 首頁 找到。您可能想先閱讀 摘要,從 網站地圖 中選擇一個進入點,或瞭解如何 開始 使用 Lua。

2.1 – Lua 有電子郵件列表嗎?

是的,有一個友善且 活躍 的論壇,稱為 lua-l。歡迎所有人。在 這裡 閱讀所有相關資訊。

對於葡萄牙語的討論,有 Lua BR,這是 lua-l 的巴西版本。

2.2 – Lua 有新聞群組嗎?

不,只要使用 郵件列表 即可。如果您想使用網路介面閱讀文章,請造訪 Google Groups 或在 MARC 查看檔案。您可能也想 搜尋檔案

如果您正在尋找 Lua 的問答論壇,請嘗試 stackoverflowpt.stackoverflow

2.3 – 我如何回報 Lua 中的錯誤?

首先,請務必確認您確實已找到錯誤。檢查 問題是否已 報告(且可能已修復)。搜尋 郵件列表 的檔案,以查看是否有人遇到相同的問題並提供修復或說明。在進行上述研究後,如果您仍然認為您可能已找到錯誤,請在 郵件列表 中發布報告。

在報告錯誤之前,請嘗試找出一個展示錯誤的最小程式,也稱為 MWESSCCE。這使得重現、記錄和追蹤錯誤變得容易許多。此外,請閱讀 Simon Tatham 的文章 如何有效報告錯誤

2.4 – 誰在使用 Lua?

Lua 用於全球許多產品和專案,包括多款知名遊戲。完整清單太長,我們無法追蹤。請參閱 清單清單

2.5 – 有關於 Lua 的書籍嗎?

PiL4

是的,有幾本。請參閱 這裡 的完整清單。書籍 用 Lua 進行程式設計 是由 Lua 的首席架構師撰寫的,對 Lua 程式設計的所有面向進行了詳細且權威的介紹。第四版 於 2016 年出版,也可作為 電子書 取得。第一版於 2003 年出版,可 線上 免費取得。先前版本 有多種語言版本。也有幾本 其他作者撰寫的 Lua 書籍

2.6 – 我如何協助支援 Lua 專案?

您可以透過 購買 Lua.org 出版的書籍和 捐款 來協助 支援 Lua 專案

您也可以透過在 Zazzle 購買 Lua 產品來幫助宣傳 Lua。