Lua 模块
module("lib.socket_moe.get")
lua: .\lib\qqlib.lua:216: attempt to index upvalue 'json_moe' (a boolean value)stack traceback: .\lib\qqlib.lua:216: in function <.\lib\qqlib.lua:204> (tail call): ? (tail call): ? .\lib\webqq.lua:230: in function 'Start_Moe' Moe.lua:260: in main chunk [C]: ?>Exit code: 1
主模块调用子模块后,将子模块的函数载入内存,而子模块如果有执行的语句,也会在require的时候执行一次,只是一次。
module(...,package.seeall) function seta() a.b=12 --print (a.b)end -- 库的执行首次信息print "子模块被载入了"print (os.date())
主模块可以让调用模块看到(package.seeall),调用模块也可以修改主模块数据.
load.lua
b=require("b") a={}b.seta()print (a.b) -- 可以访问模块变量
b.lua:
module(...,package.seeall) function seta() a.b=12end
运行load.lua,会得到的是12
--将自定义包路径加入package的搜索路径中。也可以加到环境变量LUA_PATH中 local p = "自定义包路径的父目录" local m_package_path = package.path package.path = string.format("%s;%s?.lua;%s?/init.lua", m_package_path, p, p)
-->-->
<--<---
联系客服