- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我对 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/
我正在学习 Luaj 库,我正在尝试在单元测试中实现双曲示例: @Test public void testHyperbolicLuaScriptExample() throws Exception
我有 Java 类: class SomeClass{ private int i; public SomeClass(int i){ this.i = i; } } 我需要使用 LuaJ
我一直在尝试寻找一种从 LuaJ 中的 Java 方法返回多个值的方法。也就是说,从 Java 返回多个值以在 Lua 代码中检索。 再一次……我的意思是: public LuaValue call(
我正在尝试编译具有两个函数的 Lua 代码,我想调用这两个函数并从中获取一些信息,但是当我在 LuaValue 对象上使用 invokemethod 时,出现此错误 LuaError: attempt
我正在编写一个 Java 程序,它使用 Lua 脚本来确定将什么输出到程序的某些区域。目前,我的代码看起来是这样的: Globals globals = JsePlatform.standardGlo
所以我得到了这个加载 .lua 文件的 java 文件。非常基本,如果我尝试在 Eclipse 中运行它,它就可以工作。 现在,当我将项目编译为可运行的 jar 文件时,它根本不会加载。当您双击它时,
我正在尝试使用 Luaj + java 构建一个 Controller 。我有以下 java 类 public class Duck { public void talk() { System.o
所以使用 LuaJ。 如果我通过,从 Java 到 Lua,用户数据 List与类型 T ,Luaj 仍然允许通过 :add 将任何类型的对象插入到该数组中功能。例如: Java代码: import
我对 Lua 完全陌生。 我有一个非常简单的脚本:“变量 = 1” 我没有找到如何从我的 Java 应用程序中获取此表达式的结果: “var == 3 和 100 或 -1” 我从这个开始: Glob
本文整理了Java中org.luaj.vm2.lib.ZeroArgFunction类的一些代码示例,展示了ZeroArgFunction类的具体用法。这些代码示例主要来源于Github/Stacko
Luaj 中的 os.time() 以毫秒为单位返回时间,但根据 lua 文档,它应该以秒为单位返回时间。 这是Luaj中的错误吗? 你能提出一种适用于 Luaj(for java) 和真正的 Lua
我正在使用 LuaJ 3.0.1,并且在迭代 Lua 脚本中强制 Java 对象中包含的数组时遇到问题。目前,这就是我正在做的事情: 我有一个包含对象数组的 Java 类。类似的东西 public c
我打算将 Lua 集成到我的 java 应用程序中。您能否谈谈在 LuaJ 与纯 Java 中实现脚本之间的性能比较。还有其他性能更好的替代方案吗? 最佳答案 Lua 使用 JIT 的速度非常快由 L
我正在使用 LuaJ,并且我有一个包含大量函数的 .lua 文件。我如何导入这些函数以在带有 LuaJ 的 Java 中使用? 最佳答案 一个选择是将文件编译成 Java 代码并导入它。另一种方法是使
在我的代码中,我需要将一个 int 插入 Lua 的堆栈中。我知道 C 的 lua_pushnumber,但是 LuaJ 中会使用什么?鉴于 LuaJ 不清楚哪些函数代表某些 C 函数,我找不到它的函
我有一个 Java 类,其中包含一个名为 test 的方法: public class MyClass() { public String test() { //Do Some
我正在试验一种游戏机制,让玩家可以在游戏内计算机上运行脚本。脚本执行将在游戏级别上受到资源限制,每刻指令数量有限。 以下概念验证演示了基本级别的沙盒和任意用户代码的限制。它成功地运行了约 250 条制
我正在使用 LuaJ 在 Java 中运行用户创建的 Lua 脚本。但是,运行永不返回的 Lua 脚本会导致 Java 线程卡住。这也使线程不可中断。我运行 Lua 脚本: JsePlatform.s
在 Java 中 LuaJ library我想知道如何在另一个由 lua 闭包通过 Java 调用的 lua 脚本中要求或导入函数的 lua 脚本。例如,这不起作用: public static Lu
我很有可能正在做一些导致此错误的奇怪事情。 以下简单示例失败: --> thingy.lua function doThing() print( "Thing has been done." );
我是一名优秀的程序员,十分优秀!