Lua文法小贴士(十二)loadstringとloadfile
Luaではloadstringを使用してluaスクリプトを含む文字列をロードできます.
例:
文字列にはfunction()endに囲まれていませんが、loadstringがロードされているのは関数です.
これはパラメータのない関数です.パラメータを追加する必要がある場合は、次のようにします.
あるいは、
コンフィギュレーションテーブルで数式をカスタマイズする必要がある場合は、loadstringが使いやすいかもしれません.
Luaにはloadfileも使用でき、luaファイルをロードできます.
(個人的にはあまり意味がないような気がします)
例えばファイルでluaに追加:
では、別のluaファイルで呼び出すことができます.
例:
local str = "print('TestLoadingString') return 1234"
local func = loadstring(str)
print(func())
文字列にはfunction()endに囲まれていませんが、loadstringがロードされているのは関数です.
これはパラメータのない関数です.パラメータを追加する必要がある場合は、次のようにします.
local fmtStr = "local a='%d' print(a)"
local fmtFunc = loadstring(string.format(fmtStr, 9999))
fmtFunc()
あるいは、
local fmtParamStr = "return function(s,x) print(s..x) end"
local fmtParamFunc = loadstring(fmtParamStr)()
fmtParamFunc("test parameters", "666")
コンフィギュレーションテーブルで数式をカスタマイズする必要がある場合は、loadstringが使いやすいかもしれません.
Luaにはloadfileも使用でき、luaファイルをロードできます.
(個人的にはあまり意味がないような気がします)
例えばファイルでluaに追加:
print("TestFileLoading")
return true
では、別のluaファイルで呼び出すことができます.
print(loadfile("TestLoading.lua")())