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))

  

 

posted @ 2015-05-02 12:25  程序world  阅读(480)  评论(0)    收藏  举报