这个星期一直在研究lua,前段时间刚解决了一个问题,就是module对全局变量的影响,因为对lua还没有系统深入的了解,这个问题折腾了我大半天的时间,大致情况就是 我在主文件中其中一个模块文件声明了一个AAA全局变量,然后模块文件中修改这个AAA变量,并且还增加了一个变量BBB,然后在执行这个模块文件后,再次显示AAA和BBB的值,发现BBB的值时nil,废话不多说来,上代码吧
main.lua
require "a" print("*********************".."*****************") -- 练习一下..的用法 print(AAA[1]) print(AAA[2]) print(BBB[1]) print(BBB[2]) print("**************************************") b= require "b" b.run() print(AAA[1]) print(AAA[2]) print(BBB[1]) print(BBB[2]) print("**************************************")
a.lua文件
AAA = {} AAA[1] = 10 BBB = {}
module(..., package.seeall) function run() print("**************************************") AAA[2] = 20 print(AAA[1]) print(AAA[2]) BBB= AAA print(BBB[1]) print(BBB[2]) print("**************************************") return 0 end
运行 lua main.lua 后,结果如下
************************************** 10 nil nil nil ************************************** ************************************** 10 20 10 20 ************************************** 10 20 nil nil **************************************
大家看到结果了吧,具体原理还不是很清楚,后续补充吧