gpt4 book ai didi

android - 如何用 Luaj 评估一个简单的表达式?

转载 作者:太空狗 更新时间:2023-10-29 13:58:41 25 4
gpt4 key购买 nike

我对 Lua 完全陌生。

我有一个非常简单的脚本:“变量 = 1”

我没有找到如何从我的 Java 应用程序中获取此表达式的结果:

“var == 3 和 100 或 -1”

我从这个开始:

Globals globals = JsePlatform.standardGlobals();
LuaValue chunk = globals.load("var = 4");
chunk.call();

LuaValue luaGetLine = globals.get("var");

按预期返回“4”。

但是

LuaValue luaGetLine = globals.get("var_tex1 == 3 and 100 or -1");

返回零

最佳答案

globals.get("key") 返回全局表中对象的LuaValue,不用于做表达式。您作为示例给出的代码试图找到一个名为“var_tex1 == 3 and 100 or -1”的变量,该变量返回 null,因为不存在这样的变量。

如果您需要 100 或 -1,您应该尝试用 Java 计算它:

int result = globals.get("var_tex1").checkint() == 3 ? 100 : -1;

如果您需要将结果作为 LuaValue,您可以执行类似以下的操作:

public static final LuaValue Lua_100 = LuaInteger.valueOf(100);
public static final LuaValue Lua_n1 = LuaInteger.valueOf(-1);

public LuaValue check() {
return globals.get("var_tex1").checkint() == 3 ? Lua_100 : Lua_n1;
}

另一种选择是完全按照您设置值的方式进行操作:

public LuaValue eval(String s)
{
LuaValue chunk = globals.load("__temp_result__=" + s);
chunk.call();

LuaValue result = globals.get("_temp_result_");
globals.set("__temp_result__", LuaValue.NIL);

return result;
}

然后调用:

LuaValue result = eval("var_tex1 == 3 and 100 or -1");

如果你想要一个整数而不是 LuaValue,只需在 LuaValue 上调用 checkint()

关于android - 如何用 Luaj 评估一个简单的表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37510816/

25 4 0
文章推荐: Android 缺少标记图像
文章推荐: html - 我们可以在
  • 中给
  • Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com