新聞中心
包庫(kù)為L(zhǎng)ua提供簡(jiǎn)易的加載及創(chuàng)建模塊的方法,由require、module方法及package表組成

創(chuàng)新互聯(lián)專(zhuān)注于陸良企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城建設(shè)。陸良網(wǎng)站建設(shè)公司,為陸良等地區(qū)提供建站服務(wù)。全流程專(zhuān)業(yè)公司,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
1、module (name [, ···])
功能:建立一個(gè)模塊。
當(dāng)package.loaded[name]中存在時(shí),當(dāng)中的表作為module;
當(dāng)在全局表中存在name指定的表時(shí),此表作為module;
當(dāng)以前兩種情況都不存表name時(shí),將新建一個(gè)表,并使其作為全局名name的值,并package.loaded[name],而且設(shè) t._NAME為name,t._M為module,t._PACKAGE為包的全名(模塊名-組件a.b.c);最后把此module設(shè)t作為當(dāng)前函數(shù) 的新環(huán)境表和package.loaded[name]的新值(也就是說(shuō),舊的環(huán)境表將不能訪問(wèn),除了加上package.seeall參數(shù)外),以被 require使用
module(name)后的可選參數(shù)為接收module名的函數(shù),如package.seeall
2、require (modname)
功能:加載指定的模塊。
此函數(shù)先檢測(cè)package.loaded表中是否存在modname,存在則直接返回當(dāng)中的值,沒(méi)有則通過(guò)郰定義的加載器加載modname。
查找加載器順序:
(1)檢測(cè)package.preload表是否存在modname,有則加載
(2)通過(guò)Lua Loader加載,通過(guò)查找存放于package.path的路徑加載,有則加載
(3)通過(guò)C Loader加載,通過(guò)查找存放于package.cpath的路徑加載,有則加載
(4)通過(guò)all-in-one Loader加載:
通過(guò)查找modname.dll并查找當(dāng)中的luaopen_
其中XXXX為載塊名-后的字符用_替換.后的字符:如:a.v1-b.c 當(dāng)函數(shù)名為luaopen_b_c
當(dāng)require查找的不是一個(gè)Lua庫(kù)或C庫(kù),它就會(huì)調(diào)用all-in-one loader,此加載器是用C路徑作為載塊的目錄,
當(dāng)查找到合適的加載器時(shí),require就會(huì)加載其中的模塊,當(dāng)加載器有返回值,將會(huì)存放于package.loaded[modname]表。最后返回package.loaded[modname]表
當(dāng)加載失敗時(shí),require將觸發(fā)錯(cuò)誤
3、package.cpath
功能:用于require C loader的搜索路徑
可以通過(guò)修改LUA_CPATH變量(luaconf.h)修改此值
4、package.loaded
功能:一個(gè)用于讓require知道哪些模塊已加載的記錄表,如果package.loaded已經(jīng)有require要的值,則直接返回此值
5、package.loadlib (libname, funcname)
功能:通過(guò)動(dòng)態(tài)連接C函數(shù)庫(kù)方式加載Lua擴(kuò)展庫(kù)
libname為庫(kù)文件名,funcname為入口函數(shù)(此函數(shù)必須為純C接口函數(shù) c++則需用 extern "C" {} 進(jìn)行限制)
6、package.path
功能:用于require Lua loader的搜索路徑
可以通過(guò)修改LUA_PATH變量(luaconf.h)修改此值
7、package.preload
功能:一個(gè)用于保存特殊模塊加載器的表
8、package.seeall(module)
功能:為module設(shè)置一個(gè)元表,此元表的__index字段的值為全局環(huán)境_G。所以module可以訪問(wèn)全局環(huán)境
注:以此函數(shù)作為module()的一個(gè)選項(xiàng)(詳細(xì)見(jiàn)module())
名稱(chēng)欄目:Lua標(biāo)準(zhǔn)庫(kù)-模塊(Modules)
文章出自:http://m.fisionsoft.com.cn/article/ccsjgsi.html
其他資訊
- 抖店設(shè)置什么優(yōu)惠券比較好?專(zhuān)業(yè)服務(wù)好的產(chǎn)品代金券
- SSL是什么東西?(ssl是什么意思?。?/a>
- 酷派8675恢復(fù)出廠設(shè)置,酷派8675a怎么恢復(fù)出廠設(shè)置(酷派8297怎么恢復(fù)出廠設(shè)置)
- RSA2010:EMC、英特爾和VMware聯(lián)手提高私有云安全
- win10無(wú)網(wǎng)絡(luò)訪問(wèn)權(quán)限?(win10系統(tǒng)沒(méi)有權(quán)限文件彈出“拒絕訪問(wèn)”提示怎么辦)


咨詢
建站咨詢
