標準函式庫 |
|
這項專案的宗旨是建立一組標準 Lua 函式庫,這些函式庫未納入核心散佈,但非常實用。
https://github.com/rrthomas/lua-stdlib
我們會以 zip 檔的形式提供快照(這些時機都經過仔細衡量,以便包含穩定的程式碼)。
如果 Lua 程式碼如此容易撰寫,又何必費心建立標準 Lua 函式庫?再說,Lua 主要不是用來撰寫 C 和 C++ 程式的腳本嗎?答案很簡單,就像程式語言中常會有的(特別是 Lua 這麼小巧又靈活),有很多有用的輪子根本沒必要重新發明。不論是要支援函數式程式設計(map
、curry
)、字串處理(split
、join
)或物件導向(建構式和繼承),撰寫高品質且有良好說明文件的文件需要時間,而且容易出錯。只要將這種性質的東西放入函式庫,就可以簡化許多程式設計任務。
再者,Lua 不只用於撰寫腳本。有些人將之用於撰寫指令列公用程式(總覺得 getopt 的建置好像還不錯)。再說,「撰寫腳本」並不僅限於幾行程式碼而已。許多腳本應用程式會有數千行程式碼的 Lua。在此情況下,除了函式庫本身之外,函式庫架構也有助於指導大型專案的開發。
我們的構想是收集我們每個人零散備用的個人公用程式,將之結合為一套相容的標準函式庫。
以下是函式庫應具有的部分特性
require("std")
)
可以一次載入全部函式庫(require "std"
),或者一次載入一個模組,例如 require "std.object"
。函式庫有階層架構,分為多個區域,例如 code
、data
和 text
。 ReubenThomas 目前正將之架構在類似標準函式庫的名稱空間中。未來有可能會根據 LTN 7 [1] 正式化。