lua require
尊重原创:http://blog.csdn.net/hong201/article/details/4163378
心得: 当我们写几个不同的文件,一个主文件需要加载基它文件时,如果仅仅是用require这个来加载,是不用功的,还需要设置package
主要代码如下:
local p = "f:/test/"
local m_package_path = package.path
package.path = string.format("%s;%s?.lua;%s?/init.lua",
m_package_path, p, p)
print(package.path) --> lua文件的搜索路径
print(package.cpath) --> lua c文件的搜索路径
其中,"f:/test/" 这个一般为工程路径
举例说明:
比如在工程中,有一个文件夹:demopackage
有一个init.lua
module(..., package.seeall)
function add(n1, n2)
return n1 + n2
end
function sub(n1, n2)
return n1 - n2
end
function div(n1, n2)
if n2 ~= 0 then
return n1 / n2
else
error("require n2 is not zero")
end
end
function mul(n1, n2)
return n1 * n2
end
工程下,一个call.lua
local p = "f:/test/"
local m_package_path = package.path
package.path = string.format("%s;%s?.lua;%s?/init.lua",
m_package_path, p, p)
print(package.path) --> lua文件的搜索路径
print(package.cpath) --> lua c文件的搜索路径
require "demopackage"
print("--------package: demopackage --------------")
for i in pairs(demopackage) do
print(i, demopackage[i])
end
print("1+1 is", demopackage.add(1,1))

浙公网安备 33010602011771号