使用LuaJava返回多个值

时间:2012-03-08 17:53:25

标签: lua luajava

我需要能够从Java返回(X,Y)位置到Lua,我无法弄清楚如何做到这一点。使用C API,您只需将值推送到堆栈,然后返回返回值的数量,但这似乎不是LuaJava如何做到的。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

问题可能是第一个参数始终是JavaFunction对象本身。假设您想要一个函数addmult,它需要两个数字,并返回它们的总和和乘积。必须将数字参数检索为索引2和3,如下所示:

JavaFunction addmult = new JavaFunction(L) {                
    @Override
    public int execute() throws LuaException {
        double x = L.toNumber(2);
        double y = L.toNumber(3);
        L.pushNumber(x+y);
        L.pushNumber(x*y);
        return 2;
    }
};
addmult.register("addmult");

现在,您应该在代码中获得类似的结果:

print(addmult(3, 5)) --> 8    13