此初版是針對 Lua 5.0 所撰寫。儘管在後續版本中仍有很大的相關性,但仍有一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買書籍,您也同時 贊助 Lua 專案


15 – 套件

許多語言提供機制來組織其全域名稱空間,例如 Modula 中的「模組」、Java 和 Perl 中的「套件」,或 C++ 中的「命名空間」。每種機制對於套件內宣告元素的使用、可見性和其他細節都有不同的規則。儘管如此,它們都提供基本機制來避免不同函式庫中定義的名稱發生衝突。每個函式庫都會建立自己的命名空間,而在此命名空間中定義的名稱不會與其他命名空間中的名稱產生衝突。

Lua 沒有提供任何明確的套件機制。然而,我們可以使用該語言提供的基本機制輕鬆實作它們。主要概念是用表格來表示每個套件,就像基本函式庫所做的一樣。

使用表格實作套件的一個明顯好處是,我們可以像操作其他表格一樣操作套件,並使用 Lua 的所有功能來建立額外的功能。在多數語言中,套件並非一級值(也就是說,它們無法儲存在變數中、傳遞為函式的引數等),因此這些語言需要針對每個套件的額外技巧使用特殊機制。

在 Lua 中,儘管我們總是使用表格來表示套件,但有許多不同的方法可以撰寫套件。在本章中,我們將介紹其中一些方法。