![lua 立即执行函数 lua 立即执行函数](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
背景
不同文件中,lua提供模块写法, 使用local修饰,可以将变量或者函数,声明为模块内有效,例如
模块暴漏变量使用 return 表的方式。
local aafunc = function() end local aaVar = return { aafunc=aafunc, aaVar=aaVar }
这样能够避免不同文件中, 存在相同函数或者变量名, 污染全局环境问题, 也解决的命名冲突问题。
但是存在一种情况, 在同一个文件内, 存在函数同名情况, 如何避免冲突?
这样情况, 此文件的规模具有一定长度, 或者 此文件 是由若干 子文件拼接而成, 各个子文件是逻辑上是 相互独立的, 如何保证命名不冲突?
解法
参考 JS中 IIF 方法, 此处给出方案。
(function()
function test()
print("aaa")
end test()
end)(); (function()
function test()
print("bbb")
end test()
end)();