问题标签 [lua-5.2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2856 浏览

module - 在 Lua 5.2 中让 2+ 个模块递归地相互引用的推荐方法

有没有办法

  • 两个 Lua 模块(我们称它们为Aand B
  • 每个模块都使用另一个模块的功能,因此它们必须require相互
  • 第三个模块(我们称之为C)可以使用A但不能B使用

C.lua

  • 可能有另一个模块D需要B但不需要A和/或E同时需要AB
  • 既不应该A也不B应该将它们的成员添加到全局命名空间中。
  • 避免使用moduleandsetfenv函数(在 Lua 5.2 中已弃用)

相关Lua - 我如何使用另一个库?(注意:此解决方案不处理循环依赖。)

0 投票
1 回答
5462 浏览

lua - Porting to Lua 5.2, LUA_GLOBALSINDEX trouble

In the code example: http://lua-users.org/wiki/SimplerCppBinding

There is the code:

In Lua 5.2, LUA_GLOBALSINDEX no longer exists. Instead, it has lua_setglobal() and lua_getglobal().


Am I correct in thinking that:

...is the correct replacement for:

I'm too new to Lua to be sure, I haven't used it for 8 months. Looking at the documentation, I'm thinking this is correct, but would like verification.

0 投票
2 回答
278 浏览

lua - Lua 创建多个闭包实例

我在一个文件中有一些 lua 代码。我想创建此代码的多个闭包实例,每个实例都有不同的 _ENV 上值。我可以使用luaL_loadfile加载文件并设置第一个上值,使用不同的表 N 次,以创建 N 个实例。但这不会加载并编译文件 N 次吗?

我想要做的lua等价物如下,除了没有加载文件

有一个更好的方法吗?

0 投票
2 回答
365 浏览

string - 可能匹配(看似)无效的 Lua 模式

我知道你不能在 Lua 中重复匹配组。例如,如果我想匹配两个连续"45"的 ',我不能这样做:

这将打印nil(未找到匹配项)。

但是,由于find(...)不报告错误(因为产生了无效的模式"%"错误"(%d"),它让我相信该模式有效的。"(%d%d)+"

如果"(%d%d)+"是有效模式,它匹配什么?如果不是,是否有特定原因没有产生错误?

0 投票
3 回答
171 浏览

lua - 当“a”为 47 时,为什么“如果 a == 40 或 42”评估为“真”?

我是 Lua 的新手,并试图在我的代码中完成这种类型的事情,但它不起作用。这里的语法和一切都是绝对正确的,但是 elseif 条件会被折腾,条件检查会出错。

因此,为此我得到的输出是:Value = 40 或 42,这是错误的

我使用的 Lua 版本是 5.2

0 投票
1 回答
2096 浏览

lua - 我们如何在 lua 中显示图像/颜色

我遇到了这个问题,我无法找出解决方案。如果可能的话,我希望在某个窗口中显示一个图像(不一定很难),然后通过从键盘发送事件将它移动到整个页面。

问题是我不能使用 LÖVE 框架,因为我们不能将它集成到我们的设置中。所以我会要求 Lua api 这样做。

这里有人知道吗?我还必须安装某种额外的库来支持颜色和图像操作吗?

感谢分享知识。

0 投票
1 回答
156 浏览

mysql - 如果一对匹配,则更新单元格值

我正在使用 luasql。我有两个这种类型的表:

IPINFO

和另一个表 ipnstats:

现在,我在这里想要实现的是,在我的ipnstats表中, IFF 的值used_times将被更新(当且仅当)表中的索引(nicknameipstats_id)都匹配。我的插入/更新命令是这样的:

然后我使用变量格式化这个字符串。但这并没有给我表格中所需的更新。它只是继续将数据插入表中。

任何帮助表示赞赏。

0 投票
1 回答
458 浏览

lua - Lua 中的控制流

我有一个问题,我想这一定很常见,你们中的大多数人都会面对它。我在 lua 中编写了一个程序,比如 main.lua,它在接收到关键事件时应该修改坐标并显示几何图形。此 lua 代码调用 reg.c,它在其中进行注册。现在在 reg.ci 中有一个函数引擎,它接收按下的键并将其传递给负责键处理的 lua 函数。但是当key事件到来时,lua代码完成注册并退出,因此来自engine()的调用变成了非法的内存访问,导致了segmentation fault。

另外我想我们不能让 lua 调用挂在 reg 函数中,并从其他地方调用引擎函数。

那么应该是什么解决方案,请指导我完成这个。


@jacob:这是我想要实现的原型:

现在,一旦进入 key_handler,当他忙于绘制点时,除非并且直到出现故障情况,我才能收到按键直到那个时候。

我希望这个解释更简单,并表达了我的观点,并有助于其他人理解这个问题。我真的很抱歉,但我不擅长表达或让别人理解。

还有一件事,我已经按照 C 语法来解释了,但是这完全是在 lua 中实现的

0 投票
1 回答
1337 浏览

c++ - Lua 5.2 重定向打印功能

可能重复:
为嵌入式 Lua 重定向/重新定义 print()

我是 Lua 的新手,很困惑。我见过这个,但我不确定它是否适用于 5.2。

我已经阅读了 _ENV table(?) 但再次不确定这是否与它有关。

那么问题来了:我如何在 C/C++ 中重定向 Lua 5.2 的内置打印函数来调用我自己的 C/C++ 函数?

0 投票
1 回答
1503 浏览

c++ - Lua c-api:如何识别 lua_pushcclosure 回调中涉及的协程/线程?

有没有办法知道执行 Lua 脚本的线程(协程)是 lua_pushcclosure 调用的来源?

为了管理一些与 lua 线程相关的东西(延迟暂停/恢复或私有线程变量),我需要识别回调中涉及的线程。我知道我可以在使用 lua_gettop 创建线程索引时获取它,但我找不到使用它的方法,因此当从 Lua 脚本发出 lua_pushcclosure 调用时它有助于识别线程。

我当前的系统允许嵌套脚本调用,因此脚本可以执行其他脚本(每个嵌套脚本调用创建一个具有相同 lua_state 的新线程。因此 lua_state 用于获取堆栈中的多个线程条目。)

我正在使用 Lua 5.2