同步發表於個人網站
LuaRocks是類似npm、pip這樣的套件管理工具,你可以在上頭找到近4000個別人已經寫好的模組。
在示例前,你需要先下載安裝好LuaRocks,若要下載其他版本,可以在這個頁面尋找看看。
在Linux上,你只需要將其解壓縮於可執行路徑底下即可。Windows可以參考官方說明。
你可以不用做這一步。略過這一不的話,之後安裝得套件會存在於全局裡。有這樣的作法,主要是用於開發其他套件時使用。
mkdir example
cd example
luarocks init
luarocks search json
###############
# ......
# lua-json
# 0.1.3-1 (rockspec) - https://luarocks.org
# 0.1.3-1 (src) - https://luarocks.org
# ......
###############
luarocks install lua-json
在模組化提過require
與package.path
有關。其實,還與package.cpath
有關。這兩個變數都可以透過環境變數LUA_PATH
和LUA_CPATH
來調整。
LuaRocks提供的半自動化處理的工具:
luarocks path --bin
或是直接使用:
eval $(luarocks path --bin)
如果你使用的LuaRocks和當前使用的Lua是不同版本,你可能會需要多加上一個參數:
luarocks --lua-version 5.4
local json = require 'json'
lua-json符合先前提到過得模組設計慣例,所以也可以直接使用:
require "json"
object = {
field = "name"
}
array = {9, 8, 7, 6, 5}
json.encode(object) --> {"field":"name"}
json.encode(array) --> [9,8,7,6,5]
arr = json.decode "[9,8,7,6,5,4]"
for i, v in ipairs(arr) do
print(i, v) -- 與JS不同的是,Lua陣列從1開始
end
obj = json.decode [[
{
"key": "value"
}
]]
for k, v in pairs(obj) do
print(k, v) --> "key" "value"
end
※ 更多詳細方法,自行搜尋文件拉~
※ 聽說是有更為高效好用的json相關套件,可以在LuaRocks找找。
If you use Windows, try LuaDist, a multi-platform distribution of the Lua that includes batteries.
LuaDist是官方推薦Windows下使用的一種環境。我先假設你已經安裝好了LuaDist,而LuaDist可以替你安裝Lua、LuaRocks和Lua的套件。
luadist . install lua
這會將lua安裝於當前目錄,你可以透過./bin/lua
執行:
./bin/lua
當前目錄結構:
與安裝Lua類似
luadist . install luarocks
luadist . install luajson
基本上使用方式與LuaRocks安裝後使用相同。不過我自己是Linux環境,還有更多東西要處理......也就是在Linux上使用上是有些困難的,這也是我放於最後才介紹這個工具的原因之一。