首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 其他开发语言 >

Lua 全局变量会被自动回收?该如何解决

2012-12-30 
Lua 全局变量会被自动回收?今天在客户端的lua脚本中,定义了一个全局的嵌套 table,如下tips {{forge 打

Lua 全局变量会被自动回收?
今天在客户端的lua脚本中,定义了一个全局的嵌套 table,如下
tips =
{
  {forge = "打造", x1 = 100, y1 = 100,width = 200,arrow = "arrowSelect",x2 = 100,y2 = 300},
  {forge = "升星", x1 = 100, y1 = 100,width = 200,arrow = "arrowSelect",x2 = 100,y2 = 300}
  -- 省略N行
};
结果在下面的函数中访问 tips时,发现刚开始都OK,过段时间测试函数就没有效果了,感觉像没有执行一样;reload一下脚本,又是刚开始OK,过会儿不行了。由于无法下断点,只能猜测这个 tips是不是过段时间就被垃圾回收了。
刚开始用lua,一知半解啊,请大哥们指点一二!!!!不盛感激!
[解决办法]
lua中函数的传参并非像C/C++那样会复制一份,他更像是C++中的引用对象,换句话说,如果你把tips这个table传递给了一个函数,然后在函数里对这个table进行了一些操作,那么实际上你已经修改了tips这个table的内容,在之后使用tips时已经发生了变化,不知道你是不是这个问题,因为你描述的不够全面,我只能这么猜测。Lua 全局变量会被自动回收?该如何解决

热点排行