【发布时间】:2015-06-10 19:54:04
【问题描述】:
我在 Android 上使用 LuaJava 的 AndroLua 端口,当我在文件 A 中定义全局表并尝试从文件 B 访问它时,缺少一些条目:
文件 A:
Game = {
name = "name"
}
function Game:init()
self.score = 7
self.player = "othername"
require('B')
end
Game:init() 方法是从 java 中调用的。
文件 B:
require('A')
print(Game.score) -- nil
print(Game.player) -- 'name'
为什么文件 B 不打印 '7' 和 'othername'?
【问题讨论】:
-
这不是工作代码。它有语法错误。而且由于循环,您也无法加载更整洁的 A 或 B 文件。
-
是的,你是对的,我从 java 中调用 Game:init() 方法,所以它没有循环
-
它应该可以工作
c.luarequire "A" Game:init()打印7和othername -
所以问题出在
require()函数的AndroLua实现中:( -
我刚刚注意到 tostring(Game) 在 A 和 B 中返回不同的表名。这很奇怪...
标签: android lua lua-table luajava