问题标签 [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.
module - 在 Lua 5.2 中让 2+ 个模块递归地相互引用的推荐方法
有没有办法
- 两个 Lua 模块(我们称它们为
A
andB
) - 每个模块都使用另一个模块的功能,因此它们必须
require
相互 - 第三个模块(我们称之为
C
)可以使用A
但不能B
使用
C.lua
:
- 可能有另一个模块
D
需要B
但不需要A
和/或E
同时需要A
和B
- 既不应该
A
也不B
应该将它们的成员添加到全局命名空间中。 - 避免使用
module
andsetfenv
函数(在 Lua 5.2 中已弃用)
相关:Lua - 我如何使用另一个库?(注意:此解决方案不处理循环依赖。)
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.
lua - Lua 创建多个闭包实例
我在一个文件中有一些 lua 代码。我想创建此代码的多个闭包实例,每个实例都有不同的 _ENV 上值。我可以使用luaL_loadfile加载文件并设置第一个上值,使用不同的表 N 次,以创建 N 个实例。但这不会加载并编译文件 N 次吗?
我想要做的lua等价物如下,除了没有加载文件
有一个更好的方法吗?
string - 可能匹配(看似)无效的 Lua 模式
我知道你不能在 Lua 中重复匹配组。例如,如果我想匹配两个连续"45"
的 ',我不能这样做:
这将打印nil
(未找到匹配项)。
但是,由于find(...)
不报告错误(因为产生了无效的模式和"%"
错误"(%d"
),它让我相信该模式是有效的。"(%d%d)+"
如果"(%d%d)+"
是有效模式,它匹配什么?如果不是,是否有特定原因没有产生错误?
lua - 当“a”为 47 时,为什么“如果 a == 40 或 42”评估为“真”?
我是 Lua 的新手,并试图在我的代码中完成这种类型的事情,但它不起作用。这里的语法和一切都是绝对正确的,但是 elseif 条件会被折腾,条件检查会出错。
因此,为此我得到的输出是:Value = 40 或 42,这是错误的
我使用的 Lua 版本是 5.2
lua - 我们如何在 lua 中显示图像/颜色
我遇到了这个问题,我无法找出解决方案。如果可能的话,我希望在某个窗口中显示一个图像(不一定很难),然后通过从键盘发送事件将它移动到整个页面。
问题是我不能使用 LÖVE 框架,因为我们不能将它集成到我们的设置中。所以我会要求 Lua api 这样做。
这里有人知道吗?我还必须安装某种额外的库来支持颜色和图像操作吗?
感谢分享知识。
mysql - 如果一对匹配,则更新单元格值
我正在使用 luasql。我有两个这种类型的表:
IPINFO
和另一个表 ipnstats:
现在,我在这里想要实现的是,在我的ipnstats
表中, IFF 的值used_times
将被更新(当且仅当)表中的索引(nickname
和ipstats_id
)都匹配。我的插入/更新命令是这样的:
然后我使用变量格式化这个字符串。但这并没有给我表格中所需的更新。它只是继续将数据插入表中。
任何帮助表示赞赏。
lua - Lua 中的控制流
我有一个问题,我想这一定很常见,你们中的大多数人都会面对它。我在 lua 中编写了一个程序,比如 main.lua,它在接收到关键事件时应该修改坐标并显示几何图形。此 lua 代码调用 reg.c,它在其中进行注册。现在在 reg.ci 中有一个函数引擎,它接收按下的键并将其传递给负责键处理的 lua 函数。但是当key事件到来时,lua代码完成注册并退出,因此来自engine()的调用变成了非法的内存访问,导致了segmentation fault。
另外我想我们不能让 lua 调用挂在 reg 函数中,并从其他地方调用引擎函数。
那么应该是什么解决方案,请指导我完成这个。
@jacob:这是我想要实现的原型:
现在,一旦进入 key_handler,当他忙于绘制点时,除非并且直到出现故障情况,我才能收到按键直到那个时候。
我希望这个解释更简单,并表达了我的观点,并有助于其他人理解这个问题。我真的很抱歉,但我不擅长表达或让别人理解。
还有一件事,我已经按照 C 语法来解释了,但是这完全是在 lua 中实现的
c++ - Lua 5.2 重定向打印功能
我是 Lua 的新手,很困惑。我见过这个,但我不确定它是否适用于 5.2。
我已经阅读了 _ENV table(?) 但再次不确定这是否与它有关。
那么问题来了:我如何在 C/C++ 中重定向 Lua 5.2 的内置打印函数来调用我自己的 C/C++ 函数?
c++ - Lua c-api:如何识别 lua_pushcclosure 回调中涉及的协程/线程?
有没有办法知道执行 Lua 脚本的线程(协程)是 lua_pushcclosure 调用的来源?
为了管理一些与 lua 线程相关的东西(延迟暂停/恢复或私有线程变量),我需要识别回调中涉及的线程。我知道我可以在使用 lua_gettop 创建线程索引时获取它,但我找不到使用它的方法,因此当从 Lua 脚本发出 lua_pushcclosure 调用时它有助于识别线程。
我当前的系统允许嵌套脚本调用,因此脚本可以执行其他脚本(每个嵌套脚本调用创建一个具有相同 lua_state 的新线程。因此 lua_state 用于获取堆栈中的多个线程条目。)
我正在使用 Lua 5.2