Lua Получение результата назад в LuaJava из вызова функции Lua - PullRequest
1 голос
/ 23 декабря 2011

Как получить значение из вызова функции Lua в LuaJava.

Допустим, у меня есть 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);

Теперь, что мне нужно вызвать для объекта LuaState, чтобы получить результат этого последнего вызова функции foo (5)?

Есть ли где-нибудь пример, показывающий вызов Java-> Lua с возвращаемыми значениями из вызова?

1 Ответ

2 голосов
/ 23 декабря 2011

Может ли что-то подобное сделать?

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