【lua】package.seeall作用
经常会在某些lua文件中的第一行写
module(..., package.seeall)
其实这是为了防止污染全局变量,模块名以当前文件名命名,返回当前模块提供的函数和变量等构成的表。
简单的说:
--a.lua module (..., package.seeall) global_num = 9527 function func() ... end
其他文件引用a.lua 必须带a.才能访问,例如
local moda = require ('a') --产生全局变量a(a.lua文件名决定), 表类型, moda = _G.a = require('a')
local num = moda.global_num --访问moda模块'全局变量'
moda.func() --调用moda模块'全局函数'
其实a中的global_num 和 func 已经不算是全局变量了,可以使用_G.global_num去验证。
好处是各个模块可以使用相同的变量和函数名,不会相互覆盖。
浙公网安备 33010602011771号