我是lua新手。我有一個查詢從表中讀取文件。 我在Lua表格式的配置文件: 例如:如何讀取包含lua表的配置文件
return {
["param1"] = {
["attribute"] = {
["myparam"] = 1,
},
["param2"] = 1
}
我如何讀取這個文件,並訪問我的配置文件的參數?
我是lua新手。我有一個查詢從表中讀取文件。 我在Lua表格式的配置文件: 例如:如何讀取包含lua表的配置文件
return {
["param1"] = {
["attribute"] = {
["myparam"] = 1,
},
["param2"] = 1
}
我如何讀取這個文件,並訪問我的配置文件的參數?
如果你想使用其他的Lua腳本來讀取配置文件:
configdata =需要 '需要'( 「CONFIGFILE」)
注意只能裝載Lua的檔案。 另外,使用'require'時不要包含'.lua'擴展名。
你的「硬道路」完全是廢話。你按行讀取文件並重新連接(quadratically slow!只需打開文件和「:read」* a「' - 你不會更改任何內容)。然後,將結果loadtring(這是一個可以隨時調用的函數),但是立即調用它,因此首先包裝內部代碼以將實際代碼作爲函數分配給全局變量。 'configData = loadfile「config.lua」'和你的5行有相同的效果,沒有任何廢話。 – nobody
@nobody你的評論方式完全是廢話。你也可以建議我使用':read'* a''來代替io.lines,而不要試圖侮辱我。另外,在調用它愚蠢之前,請先閱讀「硬」模式背後的原因。 我通過書學習了Lua,而不是通過互聯網。所以我編寫代碼的方式可能與你有很大的不同,但這並不意味着你應該以這種方式表達你的挫敗感。 這個網站是爲了學習,而不是叫某人愚蠢地寫代碼不同。 但thx,我會用':read「* a」'代替 –
(Side-branch :)恕我直言,調用「意外二次方」代碼「完全廢話」就足夠了。你似乎正在親自採取,這不是預期的效果:對此感到遺憾。要查看重複級聯有多糟糕,請嘗試'local c =「」; for i = 1,1e6 do c = c ..「。」 end'與'local t = {};對於i = 1,1e6做t [i] =「。」結束 ;本地c = table.concat(t)'。兩者都連接1M個字符,但第二個需要0.5秒,第一個需要3分鐘_over! (看看爲什麼我說這就是廢話?)所以:當在一個循環中連接時,最後累積到一個表&table.concat中! – nobody
您可以在您的應用程序源代碼中簡單地使用require
配置文件。包含未經檢查的代碼
local config = require "config"
'require'接受*模塊*名稱,而不是*文件*名稱。 – lhf
@lhf啊是的。忘記了這一點。固定。 – hjpotter92
配置文件是一個壞主意。小心這些 – Matt
你忘了'},關閉第一個「param1」表 –