Відповідь:
Ця тема заслуговує ґрунтовної статті. Але якщо коротко, то за час роботи зустрічалися наступні варіанти викликів, на які слід звернути увагу:
require(lua-file).function();
require(lua-file)(variable);
require(lua-file).variable.
Наприклад:
Виклик:
1 2 3 4 5 6 |
found=require('mathops').init(par1, par2, par3); if found then print (""Mult is:"", mathops.multiplay) print (""Dev is:"", mathops.devide) print (""Sum is:"", mathops.sum) end |
Файл mathops.lua
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
local M={ -- declaration array for new custom module name=..., -- module name, upvalue from require('module-name') sum=nil, -- aa + bb multiplay=nil,-- aa * bb + sum devide =nil -- aa / bb + sum } _G[M.name] = M -- registring now custom module to Global environment table function M.init(aa,bb, destr) -- function Init declaration as a part of new custom module if destr == true then _G[M.name],package.loaded[M.name]=nil,nil -- Destroy module from Global environment else M.sum = aa + bb M.multiplay = aa * bb + M.sum M.devide = aa / bb + M.sum end end return M |