lua require与module

本文详细介绍了Lua中的模块机制module和require的实现原理。module通过table实现,require负责加载模块并处理重复加载。require将模块名作为参数传递,并根据模块是否返回值决定返回值。环境部分讨论了全局表_G以及如何避免全局污染。最后提到了module函数及其对外部访问的控制。
摘要由CSDN通过智能技术生成

一、模块机制module

    1.什么是module

对于用户来说,一个module相当于一个so库。模块的主要目标是实现代码的共享。

    2.如何编写module

lua是通过table来实现模块的,典型的写法如下。

local M = {}        ---- 通常是加local的,如果不加,则M默认注册到_G中,require后,即使不return也可以直接使用M。加了local是局部变量,需要显示的return一下。

M.print = function(...)

    print(...)

end

return M


二、require机制

    1.require实现原理:

function require(name)

    if not packge.loaded[name] then        ---- 避免重复加载

        local loader = findloader(name)        ---- 如果是so,就以loadlib方式加载文件,如果是lua文件,就以loadfile方式加载文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值