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