Lua知识点_基础_package
来源:互联网 发布:文本语音朗读软件 编辑:程序博客网 时间:2024/04/28 12:55
1.概述
package的功能类似c++的namespace,它其实是一个文件夹名字,在这个文件夹下有不同的lua脚本,
你可以通过package的名字作为前缀去使用其包含的lua脚本中的函数。
2.实例
src--
--test.lua
--demopackage
--init.lua
--a.lua
这时候,demopackage就是一个包了,模块demopackage的功能由init.lua文件提供,模块demopackage.a
由a.lua文件提供,下面将在test.lua文件中调用demopackage包。
(1)
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
(2)
a.lua---------------
module(..., package.seeall)
function p()
print "module demopackage.a"
end
function lstostring(ls)
return "{" .. table.concat(ls, ", ") .. "}"
end
(3)
test.lua-----------------
--将自定义包路径加入package的搜索路径中。也可以加到环境变量LUA_PATH中
local p = "E:/dep/code/lua/"
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"
require "demopackage.a"
print("--------package: demopackage --------------")
for i in pairs(demopackage) do
print(i, demopackage[i])
end
print("--------package: demopackage.a --------------")
for i in pairs(demopackage.a) do
print(i, demopackage.a[i])
end
print("---------------demo print--------------")
print( demopackage.add(1, 2) )
print( demopackage.a.lstostring({"first", "second"}) )
print( demopackage.a.p() )
注意:
lua中,用require来加载包,如果想重命名加载的包,可以如下操作:
local t = require "demopackage", 这时候,就可以用t调用demopackage中的功能了。
lua加载包时,不会加载包中所有的模块,这点是跟其他语言不一样的,这样做应该是为了提高运行速度吧。
0 0
- Lua知识点_基础_package
- Lua知识点_基础_module
- Lua知识点_基础_setfenv
- Lua知识点_基础_rawset
- Lua知识点_基础_loadfile和dofile和require
- Lua基础知识点
- LUA入门基础知识点
- Lua的基础知识点
- lua 基础知识点
- lua基础知识点1
- Lua基础知识点2
- 黑马程序员_Java基础[24]_package、import
- Lua知识点2_使用json
- Lua知识点3_线程和状态
- python_基础_知识点集锦
- 关于Lua的一些基础知识点
- 01.Lua笔记_基础语法部分
- c++11知识点1_基础
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
- 关于静态广播和动态广播
- (模板题)poj 2418 Hardwood Species(字典树)
- Android性能优化
- Android Studio插件使用记录-陈科肇
- Lua知识点_基础_package
- 关于如何提高Web服务端并发效率的异步编程技术
- Unity获得Apple的UDID,并存储到keychain
- 解决5.0以上系统ScrollView嵌套RecyclerView滑动迟缓
- GetWindowLong函数
- 次优查找树(Nearly Optimal Search Tree)
- Go语言编程(五)之常量
- 新的账号,新的开始,新的未来
- 【华为 OJ 】字符串加解密