Lua 从 Lua 函数调用返回 LuaJava 中的结果

Lua Getting Result Back in LuaJava from Lua function call

如何从 LuaJava 中的 Lua 函数调用中获取值。

假设我有 calc.lua:

1
function foo(n) return n*2 end

我在Java中调用函数如下:

1
2
3
4
5
6
7
LuaState luaState;
this.luaState = LuaStateFactory.newLuaState();
this.luaState.openLibs();
this.luaState.LdoFile("calc.lua");
this.luaState.getGlobal("foo");
this.luaState.pushNumber(5.0);
int retcode=this.luaState.pcall(1, 1,0);

现在我必须在 LuaState 对象上调用什么来获得最后一个函数调用 foo(5) 的结果?

在某处是否有示例显示 Java->Lua 调用以及调用返回值?


这样的东西能解决问题吗?

1
2
3
int top_index = luaState.getTop();
double result = luaState.isNumber(top_index) ?
                luaState.toNumber(top_index) : 0.0;