Lua Module

一个Lua模块的数据结构使用一个Lua值(通常是Lua表或者Lua函数),一个Lua模块代码就是一个会返回这个Lua值得代码块

常规写法

    local M = {}
    local modelName = ...
    _G[modelName] = M
    setmetatable(M,{__index = _G})
    setfenv(1,M)
    return M

    --package.seeall让原来的_G依然有效
    --等效于setmetatable(M,{__index = _G})
    module(...,package.seeall)

package.seealll

1. 破坏了模块的高内聚,是的模块可以读写全局属性 例如xxx.os
2. 污染了全局环境变量,使得没有引用它的文件也能调用filename模块的方法

    local M = {}
    local mt = {__index = M}

    function M.new()
        return setmetatable({},mt)
    end

    return M
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值