使用LuaJava返回多个值

我需要能够从 Java 返回一个 (X, Y) 位置给 Lua,但我不知道怎样做。使用 C API,你只需要将值推入栈中然后返回返回值个数,但似乎 LuaJava 并不是这样做的。有什么建议吗?

原文链接 https://stackoverflow.com/questions/9622365

点赞
stackoverflow用户221509
stackoverflow用户221509

这个问题可能是因为第一个参数总是 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
2012-03-08 19:15:46