lua 立即执行函数

背景

不同文件中,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)();

 

原文地址:https://www.cnblogs.com/lightsong/p/6275388.html