1

LuaJavaでLua関数呼び出しから値を取得するにはどうすればよいですか?

calc.lua があるとしましょう:

function foo(n) return n*2 end

次のように Java で関数を呼び出します。

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);

この最後の関数呼び出し foo(5) の結果を取得するには、LuaState オブジェクトで何を呼び出さなければならないのでしょうか?

呼び出しからの戻り値を持つ Java->Lua 呼び出しを示す例はどこかにありますか?

4

1 に答える 1

2

このようなものはうまくいきますか?

int top_index = luaState.getTop();
double result = luaState.isNumber(top_index) ? 
                luaState.toNumber(top_index) : 0.0;
于 2011-12-23T06:21:51.087 に答える