gpt4 book ai didi

java - LuaJ 中的多个返回值

转载 作者:行者123 更新时间:2023-11-30 10:57:32 27 4
gpt4 key购买 nike

我一直在尝试寻找一种从 LuaJ 中的 Java 方法返回多个值的方法。也就是说,从 Java 返回多个值以在 Lua 代码中检索。

再一次……我的意思是:

public LuaValue call() {

Dimension size = guiConsole.getSize();

int width = LuaValue.valueOf(size.width), height = LuaValue.valueOf(size.height);

return width, height; // This obviously wouldn't work, but this is the functionality I'm after

}

这样我就可以从 Lua 代码中做到:

width, height = getSize()

成功获取宽度和高度。

最好的问候,

最佳答案

我设法找到了如何做到这一点。在做了更多研究之后,发现有一个 VarArgFunction 可以用来扩展你的类。您可以使用“invoke(Varargs v)”方法,而不是像通常在“call()”方法中那样返回您的 LuaValue。这允许您返回包含 LuaValues 的 Varargs 对象。 Varargs 是使用“LuaValue.varargsOf(LuaValue[] luaValues)”方法构建的。

例子:

public class GetSize extends VarArgFunction {

private Dimension size;

public GetSize(Dimension size) {

this.size= size;

}

public Varargs invoke(Varargs v) {

Varargs varargs = LuaValue.varargsOf(new LuaValue[] {LuaValue.valueOf(size.width),
LuaValue.valueOf(size.height)});

return varargs;

}

}

也就是说,现在可以从 Lua 中的“getSize()”函数中检索两个值!

width, height = getSize()

耶!

关于java - LuaJ 中的多个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32573748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com